Gelung Tanpa Peleter Eksplisit dalam Python
Dalam Python, cara konvensional untuk mengulang julat nilai melibatkan penggunaan gelung for dengan pembolehubah lelaran, seperti:
for i in range(some_number): # do something
Walau bagaimanapun, sintaks ini mungkin berlebihan dalam kes di mana anda tidak memerlukan pembolehubah lelaran. Sebaliknya, anda mungkin tertanya-tanya sama ada mungkin untuk melaksanakan gelung tanpa menyatakan lelaran eksplisit.
Jawapan:
Malangnya, pada masa ini tidak mungkin untuk mencipta gelung tanpa menggunakan pembolehubah iterator dalam Python. Anggaran terdekat ialah gelung yang menggunakan fungsi tanpa nama seperti berikut:
def loop(f, n): for i in xrange(n): f() loop(lambda: <insert expression here>, 5)
Walau bagaimanapun, pendekatan ini lebih rumit sedikit daripada menggunakan piawai untuk gelung dan tidak biasa digunakan.
Pilihan lain ialah menggunakan pembolehubah '_', yang berfungsi sebagai pembolehubah tambahan dengan berkesan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa '_' memegang hasil ungkapan sebelumnya dalam sesi Python interaktif, menjadikan penggunaannya dalam konteks ini agak tidak diingini.
Selain itu, manakala '_' ialah nama pembolehubah yang sah dari segi sintaksis , ia boleh membawa kepada potensi konflik. Contohnya:
for _ in xrange(10): pass _ # The resulting value is 9 1+2 # The result is still 3, even though it should be 2 since '_' is set to 9
Secara amnya dianggap sebagai amalan yang baik untuk menggunakan pembolehubah lelaran eksplisit untuk gelung untuk mengekalkan kejelasan kod dan mengelakkan isu yang berpotensi.
Atas ialah kandungan terperinci Bolehkah Anda Loop dalam Python Tanpa Iterator Eksplisit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!