Mengapakah argumen yang diperlukan mesti mendahului argumen lalai dalam definisi fungsi Python?

Susan Sarandon
Lepaskan: 2024-10-31 22:24:02
asal
519 orang telah melayarinya

Why must required arguments precede default arguments in Python function definitions?

Mengapa Argumen Lalai Tidak Boleh Mendahului Argumen Yang Diperlukan?

Dalam Python, SyntaxError dibangkitkan apabila argumen bukan lalai mengikuti argumen lalai dalam senarai parameter fungsi. Sekatan ini wujud untuk memastikan tafsiran nilai hujah yang tidak jelas oleh penterjemah.

Pertimbangkan definisi fungsi berikut:

def fun1(a="who is you", b="True", x, y):
    print a, b, x, y
Salin selepas log masuk

Kod ini akan menimbulkan SyntaxError kerana parameter yang diperlukan x dan y mengikuti parameter lalai a dan b.

Argumen yang Diperlukan Diutamakan

Parameter yang diperlukan mesti sentiasa diletakkan sebelum sebarang parameter lalai dalam senarai parameter fungsi. Ini kerana parameter yang diperlukan adalah wajib, manakala parameter lalai adalah pilihan. Secara sintaksis, penterjemah tidak akan dapat menentukan nilai yang sepadan dengan hujah yang mana jika ia bercampur.

Contoh

Kod berikut berjalan tanpa ralat kerana parameter yang diperlukan x dan y diletakkan sebelum parameter lalai a dan b:

def fun1(x, y, a="who is you", b="True"):
    print a, b, x, y
Salin selepas log masuk
Salin selepas log masuk

Argumen Kata Kunci

Argumen kata kunci boleh digunakan untuk memanggil fungsi dengan argumen dalam sebarang susunan. Walau bagaimanapun, susunan parameter dalam senarai parameter fungsi masih mengawal nilai yang diberikan kepada argumen yang mana.

Sebagai contoh, dengan definisi fungsi di atas:

def fun1(x, y, a="who is you", b="True"):
    print a, b, x, y
Salin selepas log masuk
Salin selepas log masuk

Kod berikut ialah sah:

fun1("ok a", "ok b", 1)  # 1 is assigned to x, "ok a" to a, "ok b" to b, "True" to y
Salin selepas log masuk

Walau bagaimanapun, jika parameter tidak diisytiharkan dengan nilai lalai:

def fun1(x, y, a, b):
    print a, b, x, y
Salin selepas log masuk

Kod berikut akan menimbulkan TypeError:

fun1("ok a", "ok b", 1)  # 3 arguments instead of 4
Salin selepas log masuk

Oleh itu , argumen lalai berguna untuk membenarkan argumen pilihan atau melangkau argumen yang hilang apabila menggunakan argumen kata kunci.

Atas ialah kandungan terperinci Mengapakah argumen yang diperlukan mesti mendahului argumen lalai dalam definisi 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!