Akses pembolehubah global tanpa kata kunci 'global' dalam Python
Dalam Python, mengakses pembolehubah global dalam fungsi biasanya memerlukan penggunaan kata kunci 'global'. Walau bagaimanapun, terdapat keadaan di mana pembolehubah global boleh diakses tanpa mengisytiharkannya secara eksplisit.
Masalahnya:
Mengapa boleh mengakses pembolehubah global walaupun tanpa menggunakan kata kunci 'global', seperti yang ditunjukkan dalam coretan kod berikut:
sub = ['0', '0', '0', '0'] def getJoin(): return '.'.join(sub) print(getJoin()) # Output: '0.0.0.0'
The Penjelasan:
Kata kunci 'global' digunakan terutamanya untuk mengubah suai atau mencipta pembolehubah global dalam konteks setempat. Walau bagaimanapun, dalam kes tertentu, pembolehubah global boleh diakses tanpa mengisytiharkannya sebagai global secara eksplisit disebabkan oleh sebab berikut:
Contoh:
Pertimbangkan kod berikut:
def bob(): me = "locally defined" # Defined only in local context print(me)
Memanggil fungsi bob() akan mencetak "ditakrifkan secara tempatan" kerana pembolehubah tempatan bernama saya telah ditakrifkan dalam fungsi tersebut. Walau bagaimanapun, jika kita cuba mengakses saya di luar fungsi tanpa kata kunci 'global', ia akan menghasilkan 'UnboundLocalError.'
print(me) # Asking for a global variable
Kesimpulan:
Walaupun kata kunci 'global' biasanya disyorkan untuk mengubah suai atau mencipta pembolehubah global, kadangkala mungkin untuk mengakses pembolehubah global tanpa mengisytiharkannya secara eksplisit sebagai sebegitu. Tingkah laku ini disebabkan oleh pembayang berubah-ubah dan mekanisme carian dalam ruang nama Python. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa bergantung pada akses pembolehubah global tersirat boleh membawa kepada ralat dan kekeliruan, jadi amalan terbaik untuk menggunakan kata kunci 'global' secara eksplisit apabila perlu.
Atas ialah kandungan terperinci Bilakah Saya Boleh Mengakses Pembolehubah Global dalam Python Tanpa Menggunakan Kata Kunci `global`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!