Walaupun peraturan skop Python untuk gelung 'untuk' secara amnya difahami, alasan di sebaliknya kekal sebagai misteri. Artikel ini menyiasat rasional di sebalik keputusan reka bentuk yang telah membawa kepada gelagat skop semasa.
Pertimbangkan kod Python berikut:
for foo in xrange(10): bar = 2 print(foo, bar)
Apabila dilaksanakan, kod ini akan dicetak (9, 2 ). Tingkah laku ini mengejutkan kerana 'foo' hanya digunakan untuk mengawal lelaran gelung, dan 'bar' ditakrifkan dalam gelung. Secara logiknya, nampaknya tidak perlu untuk 'bar' boleh diakses di luar gelung dan pembolehubah kawalan gelung 'foo' kekal dalam skop selepas gelung keluar.
Penjelasan paling munasabah untuk pilihan reka bentuk ini ialah kesederhanaan . Dengan mengekalkan peraturan skop dengan mudah, Python mengekalkan tatabahasa yang jelas dan ringkas. Keputusan ini tidak menghalang penerimaan dan ciri ini telah diterima secara meluas oleh komuniti. Menetapkan pembolehubah dalam binaan gelung tidak memerlukan nyahkekaburan skop yang jelas. Selain itu, kata kunci global menyediakan cara untuk menetapkan pembolehubah kepada skop global.
Perbincangan menyeluruh tentang peraturan skop Python boleh didapati pada senarai mel Idea Python. Satu hujah yang ketara ialah kod sedia ada sering bergantung pada pembolehubah gelung yang mengekalkan nilainya selepas keluar dari gelung, yang dianggap sebagai ciri yang diingini.
Kesimpulannya, falsafah reka bentuk Python untuk skop dalam gelung 'untuk' mengutamakan kesederhanaan, dengan matlamat mengekalkan sintaks yang jelas dan ringkas. Pendekatan ini telah terbukti popular dalam komuniti Python, walaupun terdapat beberapa potensi kelemahan berkaitan ruang nama global yang berantakan dan pengesanan ralat.
Atas ialah kandungan terperinci Mengapakah Gelung `for` Python Meninggalkan Pembolehubah Gelung dalam Skop?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!