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

Mengapa Kaedah Pengubahsuaian Senarai Python Mengembalikan `Tiada`?

Susan Sarandon
Lepaskan: 2024-12-20 18:29:13
asal
838 orang telah melayarinya

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

Mengapa Kaedah Senarai Python Tidak Mengembalikan Daripada Senarai?

Mengubah suai kaedah senarai seperti menambah, mengisih, melanjutkan, mengalih keluar, mengosongkan dan membalikkan biasanya tidak mengembalikan Tiada sebaliknya daripada senarai yang diubah suai itu sendiri. Keputusan reka bentuk ini berakar umbi dalam prinsip menyeluruh Python bahawa fungsi yang mengubah suai objek di tempat harus mengembalikan Tiada.

Rasional

Menurut Guido van Rossum, arkitek Python , pilihan ini berfungsi untuk menekankan bahawa objek baharu tidak dibuat. Dengan tidak mengembalikan senarai yang diubah suai, ia tidak menggalakkan penggunaan kesan sampingan berantai, seperti:

x.compress().chop(y).sort(z)
Salin selepas log masuk

yang boleh mengelirukan dan menghalang kebolehbacaan. Sebaliknya, Python lebih suka bentuk yang lebih eksplisit:

x.compress()
x.chop(y)
x.sort(z)
Salin selepas log masuk

Pemisahan ini menjelaskan bahawa setiap kaedah bertindak pada objek yang sama.

Operasi Rantaian

Semasa merantai sisi -panggilan kesan tidak digalakkan, Python membenarkannya untuk operasi yang mengembalikan nilai baharu, seperti pemprosesan rentetan operasi:

y = x.rstrip("\n").split(":").lower()
Salin selepas log masuk

Pertimbangan

Keputusan reka bentuk ini mempunyai kelemahan. Ia menghalang "rantaian" intuitif pemprosesan senarai, seperti:

mylist.reverse().append('a string')[:someLimit]
Salin selepas log masuk

Alternatif seperti pemahaman senarai dan struktur data lain boleh menyediakan kefungsian yang serupa tanpa melanggar konvensyen "tiada pulangan kesan sampingan".

Atas ialah kandungan terperinci Mengapa Kaedah Pengubahsuaian Senarai Python Mengembalikan `Tiada`?. 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