Mengapakah Mengisytiharkan Hujah Bukan Lalai Selepas Hujah Lalai dalam Python?

Patricia Arquette
Lepaskan: 2024-11-01 18:09:30
asal
845 orang telah melayarinya

Why is it Illegal to Declare Non-Default Arguments After Default Arguments in Python?

Mengapa tidak Sah Mengisytiharkan Hujah Bukan Lalai selepas Hujah Lalai?

Dalam Python, adalah penting untuk mengikut susunan hujah yang betul apabila mentakrifkan fungsi. Argumen bukan lalai mesti mendahului sebarang argumen lalai. Kekangan ini berpunca daripada fakta bahawa parameter yang diperlukan mesti dinyatakan sebelum parameter pilihan (argumen lalai).

SyntaxRalat: Argumen Bukan Lalai Mengikuti Argumen Lalai

Ralat ini berlaku apabila anda mengisytiharkan fungsi dengan argumen bukan lalai selepas argumen lalai, seperti dalam contoh berikut:

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

Isu Tugasan Tidak Dijangka

Mencampurkan lalai dan bukan lalai hujah membawa kepada kekaburan sintaksis. Mari kita pertimbangkan panggilan fungsi dengan fungsi di atas:

<code class="python">func1("ok a", "ok b", 1)  # Is 1 assigned to x or a?
func1(1)                  # Is 1 assigned to a or x?
func1(1, 2)               # Which arguments are mapped to which parameters?</code>
Salin selepas log masuk

Adalah mustahil untuk jurubahasa menentukan tugasan yang betul dalam kes sedemikian.

Rujukan kepada O'Reilly - Core-Python

Seperti O'Reilly - Core-Python, semua parameter yang diperlukan harus mendahului sebarang argumen lalai dalam definisi fungsi. Ini memastikan bahawa fungsi boleh dipanggil dengan set minimum parameter yang diperlukan.

Panggilan Argumen Kata Kunci

Argumen kata kunci membenarkan argumen kedudukan yang tidak tertib dan boleh melangkau lebih daripada argumen yang hilang jika digunakan bersama dengan argumen lalai. Sebagai contoh, panggilan fungsi berikut menggunakan argumen kata kunci adalah betul dari segi sintaksis:

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

# Call with keyword arguments
fun1(4, y=5, a="Python is awesome")</code>
Salin selepas log masuk

Kesimpulan

Untuk mengelakkan SyntaxError dan mengekalkan aliran logik untuk memberikan argumen kepada parameter, adalah penting untuk mengingati penempatan hujah yang betul dalam definisi fungsi. Sentiasa isytiharkan parameter yang diperlukan (argumen bukan lalai) sebelum sebarang parameter pilihan (argumen lalai).

Atas ialah kandungan terperinci Mengapakah Mengisytiharkan Hujah Bukan Lalai Selepas Hujah Lalai dalam 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!