Mengapa Argumen Lalai Mesti Datang Sebelum Argumen Bukan Lalai dalam Fungsi Python?

Linda Hamilton
Lepaskan: 2024-11-02 08:20:29
asal
364 orang telah melayarinya

Why Must Default Arguments Come Before Non-Default Arguments in Python Functions?

Kenapa Argumen Lalai Mesti Mendahului Argumen Bukan Lalai?

Dalam Python, susunan argumen dalam definisi fungsi adalah penting, terutamanya apabila campuran argumen lalai dan bukan lalai terlibat. Peraturan susunan ini memastikan tafsiran argumen yang tidak jelas semasa panggilan fungsi.

Apabila argumen bukan lalai mengikuti argumen lalai dalam definisi fungsi, seperti dalam contoh berikut, SyntaxError dilemparkan:

<code class="python">def fun1(a="who is you", b="True", x, y):
    print(a, b, x, y)</code>
Salin selepas log masuk

Ralat ini berlaku kerana parameter yang diperlukan (bukan lalai) mesti sentiasa mendahului parameter pilihan (lalai) dalam tandatangan fungsi. Argumen lalai memenuhi nilai pemegang tempat apabila argumen ditinggalkan dalam panggilan fungsi, manakala argumen bukan lalai adalah wajib.

Jika argumen diletakkan dalam susunan yang salah, seperti yang dilihat dalam contoh di atas, penterjemah tidak dapat menentukan tugasan yang betul nilai kepada parameter fungsi. Tidak jelas sama ada nilai yang dihantar semasa panggilan fungsi akan sepadan dengan argumen lalai atau bukan lalai.

Untuk mengelakkan kekaburan, sintaks yang betul berikut boleh digunakan:

<code class="python">def fun1(x, y, a="who is you", b="True"):
    print(a, b, x, y)</code>
Salin selepas log masuk

Kata kunci argumen boleh digunakan bersama-sama dengan argumen lalai untuk menyediakan argumen kedudukan yang tidak teratur atau melangkau argumen yang hilang. Sebagai contoh, argumen lalai "a" dan "b" boleh digunakan dengan panggilan fungsi berikut:

<code class="python">fun1(1, 2, b="False")</code>
Salin selepas log masuk

Dalam kes ini, dua argumen kedudukan pertama ditetapkan kepada "x" dan "y" masing-masing, manakala hujah kata kunci memberikan nilai "Salah" kepada "b", melangkau nilai lalai "Benar".

Atas ialah kandungan terperinci Mengapa Argumen Lalai Mesti Datang Sebelum Argumen Bukan Lalai dalam Fungsi Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!