Menggunakan Pemahaman Senarai untuk Kesan Sampingan: Amalan Bukan Phytonik
Pemahaman senarai Python ialah alat yang berkuasa untuk mencipta senarai baharu berdasarkan iterable sedia ada . Walaupun mereka menawarkan sintaks ringkas dan ekspresif, menggunakan pemahaman senarai semata-mata untuk kesan sampingannya dianggap anti-Pythonic.
Masalahnya
Pertimbangkan fungsi yang melakukan kesan sampingan seperti sebagai mencetak ke skrin, mengemas kini GUI atau menulis ke fail. Ia mengembalikan nilai, tetapi nilai itu biasanya tidak menarik.
def fun_with_side_effects(x): ...side effects... return y
Seseorang mungkin tergoda untuk menggunakan pemahaman senarai untuk memanggil fungsi ini untuk kesan sampingannya, seperti berikut:
[fun_with_side_effects(x) for x in y if (...conditions...)]
Perhatikan bahawa senarai yang terhasil tidak diberikan kepada pembolehubah.
Anti-Pythonic Alam Semula Jadi
Menggunakan pemahaman senarai dengan cara ini amat tidak digalakkan atas beberapa sebab:
Pendekatan Pilihan
Pendekatan pilihan ialah menggunakan gelung for untuk mengulang ke atas yang boleh diulang dan memanggil fungsi kesan sampingan hanya apabila perlu:
for x in y: if (...conditions...): fun_with_side_effects(x)
Pendekatan ini lebih cekap, idiomatik dan kurang mengelirukan. Ia adalah petunjuk yang jelas bahawa fungsi dipanggil terutamanya untuk kesan sampingannya.
Atas ialah kandungan terperinci Adakah Menggunakan Pemahaman Senarai untuk Kesan Sampingan dalam Python Dianggap sebagai Amalan Buruk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!