Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Kaedah Pengubahsuaian Senarai Python Mengembalikan `Tiada`?

Mengapa Kaedah Pengubahsuaian Senarai Python Mengembalikan `Tiada`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-22 12:23:11227semak imbas

Why Do Python's List Mutating Methods Return `None`?

Mengapa Kaedah Senarai Mutasi Python Kembali Tiada

Dalam Python, operasi yang mengubah suai senarai, seperti menambah, mengisih, melanjutkan, mengalih keluar, mengosongkan , dan sebaliknya, secara mengejutkan mengembalikan Tiada dan bukannya senarai yang dikemas kini. Keputusan reka bentuk ini telah menjana rasa ingin tahu dan perdebatan.

Guido van Rossum, Diktator Kebajikan Python untuk Kehidupan (BDFL), menerangkan bahawa prinsip ini berpunca daripada pertimbangan gaya pengekodan. Sesetengah bahasa lebih suka merantai pelbagai kesan sampingan pada satu objek, seperti dalam x.compress().chop(y).sort(z).

Van Rossum percaya rantaian ini boleh menghalang kebolehbacaan untuk pembaca yang tidak biasa dengan kaedah terlibat. Dia lebih suka gaya yang lebih eksplisit di mana kesan sampingan diasingkan dan digunakan terus pada objek:

x.compress()
x.chop(y)
x.sort(z)

Pendekatan ini menjelaskan objek yang sedang diubah suai, menggalakkan pemahaman.

Rizab Van Rossum rantaian untuk operasi yang mengembalikan nilai baharu, seperti operasi pemprosesan rentetan yang hasilnya adalah rentetan yang diubah, seperti dalam:

y = x.rstrip("\n").split(":").lower()

Reka bentuk ini keputusan telah dilaksanakan dengan sengaja untuk tidak menggalakkan rantaian panggilan kesan sampingan dan menekankan perbezaan antara pengubahsuaian di tempat dan operasi yang mengembalikan objek baharu. Walaupun ini mungkin kelihatan menyusahkan kadang-kadang, ia menggalakkan kejelasan dan konsistensi dalam gaya pengekodan Python.

Atas ialah kandungan terperinci Mengapa Kaedah Pengubahsuaian Senarai Python Mengembalikan `Tiada`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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