Apabila bekerja dengan fungsi dan pembolehubah global, adalah penting untuk memahami cara skop dan interaksinya mempengaruhi tingkah laku kod anda. Mari kita selami kes tertentu di mana fungsi nampaknya gagal mengemas kini pembolehubah global, membawa kepada hasil yang tidak dijangka.
Pertimbangkan kod berikut:
<code class="python">done = False def function(): for loop: code if not comply: done = True # Let's assume the code enters this if-statement while done == False: function()</code>
Seperti yang anda perhatikan, ini kod terus melaksanakan function() walaupun selepas ia telah menetapkan done kepada True. Sebabnya ialah function() mencipta ruang nama tempatannya sendiri, dan sebarang perubahan yang dibuat kepada pembolehubah dalam fungsi itu tidak disebarkan ke skop global. Untuk menggunakan pembolehubah global yang dilakukan sebaliknya, anda perlu mengisytiharkan sifat globalnya secara eksplisit dalam fungsi menggunakan kata kunci global:
<code class="python">def function(): global done for loop: code if not comply: done = True</code>
Dengan memasukkan kata kunci global, anda mewujudkan pautan antara pembolehubah global dan setempatnya rakan sejawatan dalam fungsi. Akibatnya, sebarang perubahan yang dibuat untuk dilakukan dalam fungsi akan mencerminkan secara langsung dalam skop global, menyebabkan gelung while terkeluar apabila selesai menjadi Benar.
Sebaliknya, dalam contoh ini:
<code class="python">done = False while done == False: for loop: code if not comply: done = True # Let's assume the code enters this if-statement</code>
pembolehubah dilakukan ditakrifkan dalam skop gelung while dan oleh itu tidak dipengaruhi oleh pembolehubah dilakukan yang ditakrifkan di luar gelung. Akibatnya, gelung while akan keluar seperti yang dijangkakan apabila selesai ditetapkan kepada True dalam skop gelung.
Memahami skop pembolehubah dan kesan fungsi pada pembolehubah global adalah penting untuk menulis kod yang mantap dan boleh diramal. Sentiasa ingat untuk mempertimbangkan dengan teliti cara fungsi anda berinteraksi dengan pembolehubah global dan gunakan kata kunci global dengan bijak untuk memastikan perubahan yang dibuat dalam fungsi disebarkan ke skop global seperti yang dimaksudkan.
Atas ialah kandungan terperinci Bagaimanakah Fungsi Mempengaruhi Pembolehubah Global? Menjelaskan Skop dan Interaksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!