Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menggunakan skop pembolehubah dalam Python
Skop pembolehubah merujuk kepada kawasan di mana kod program boleh mengakses pembolehubah Jika ia melebihi kawasan ini, ralat akan berlaku apabila mengaksesnya semula. Dalam program, pembolehubah biasanya dibahagikan kepada "pembolehubah global" dan "pembolehubah tempatan" berdasarkan "skop sah" mereka.
Pembolehubah setempat merujuk kepada pembolehubah yang ditakrifkan dan digunakan di dalam fungsi. Iaitu, nama di dalam fungsi hanya akan dibuat apabila fungsi dijalankan Semua nama tidak akan wujud lagi sebelum atau selepas fungsi dijalankan. Oleh itu, jika pembolehubah yang ditakrifkan di dalam fungsi digunakan di luar fungsi, pengecualian NameError akan dilemparkan.
Sebagai contoh, tentukan fungsi bernama fungsi, tentukan puisi pembolehubah (dipanggil pembolehubah tempatan) di dalam fungsi, tetapkan nilai kepadanya, kemudian keluarkan pembolehubah, dan akhirnya keluarkan pembolehubah puisi sekali lagi di luar fungsi body , kodnya adalah seperti berikut:
def function(): poem = '面朝大海,春暖花开' print('局部变量poem = ', poem) # 输出局部变量的值 function() # 调用函数 print('局部变量poem = ', poem) # 在函数体外输出局部变量的值
Menjalankan kod di atas akan memaparkan pengecualian seperti yang ditunjukkan dalam rajah di bawah.
sepadan dengan pembolehubah tempatan Pembolehubah global ialah pembolehubah yang boleh bertindak di dalam dan di luar fungsi. Pembolehubah global terutamanya mempunyai dua situasi berikut:
(1) Jika pembolehubah ditakrifkan di luar fungsi, ia boleh diakses bukan sahaja di luar fungsi, tetapi juga dalam fungsi. Pembolehubah yang ditakrifkan di luar badan fungsi ialah pembolehubah global.
Contohnya, tentukan puisi pembolehubah global, dan kemudian tentukan fungsi untuk mengeluarkan nilai puisi pembolehubah global dalam fungsi Kodnya adalah seperti berikut:
poem = '花有重开日,人无再少年' # 全局变量 def function(): print('函数体内:全局变量poem =', poem) # 在函数体内输出全局变量的值 function() # 调用函数 print('函数体外:全局变量poem =', poem) # 在函数体外输出全局变量的值
Jalankan kod di atas , kandungan berikut akan dipaparkan :
Dalam badan fungsi: global variable poem = Apabila bunga mekar semula, orang tidak akan muda lagi
Di luar fungsi: Global variable poem = Apabila bunga mekar semula, orang tidak akan muda lagi
Penjelasan: Apabila pembolehubah tempatan dan pembolehubah global mempunyai nama yang sama, memberikan nilai kepada pembolehubah dalam badan fungsi tidak akan menjejaskan pembolehubah di luar badan fungsi. Maksudnya, setiap orang memukul gongnya sendiri dan setiap orang memukul gendangnya sendiri.
Contohnya, takrifkan pembolehubah global a di luar badan fungsi dan tetapkan nilai 100, dan takrifkan pembolehubah tempatan a di dalam badan fungsi dan tetapkan nilai 10. Kod itu seperti berikut:
a = 100 # 定义一个全局变量 def function(): a = 10 # 定义局部变量 print(a) # 输出局部变量的值 function() # 调用函数 print(a) # 输出全局变量的值
Hasil pelaksanaan adalah seperti berikut:
10100
(2) Ditakrifkan dalam badan fungsi dan diubah suai dengan kata kunci global , pembolehubah menjadi pembolehubah global. Pembolehubah juga boleh diakses di luar badan fungsi dan boleh diubah suai di dalam badan fungsi.
Sebagai contoh, tentukan pembolehubah dalam badan fungsi dan gunakan kata kunci global untuk mengubah suainya. Kodnya adalah seperti berikut:
poem = '天若有情天亦老,人间正道是沧桑' # 全局变量 print('函数体外:poem =', poem) # 在函数体外输出全局变量的值 def function(): global poem # 将poem声明为全局变量 poem = '人生得意须尽欢,莫使金樽空对月' # 全局变量 print('函数体内:poem =', poem) # 在函数体内输出全局变量的值 function() # 调用函数 print('函数体外:poem =', poem) # 在函数体外输出全局变量的值
Jalankan kod di atas, kandungan berikut akan dipaparkan:
Fungsi in vitro: puisi = Jika langit sentimental, langit juga akan menjadi tua, dan jalan yang benar di dunia adalah pergolakan kehidupan
Fungsi dalam badan: puisi = Jika anda bangga dengan kehidupan, anda mesti mempunyai semua kegembiraan, jangan biarkan cawan emas kosong ke bulan
Fungsi luar badan: pantun = Jika anda berbangga dengan kehidupan, anda mesti mempunyai semua kegembiraan, jangan biarkan cawan emas kosong ke bulan
Dari atas Ia boleh dilihat daripada keputusan bahawa pembolehubah global yang diubah suai oleh kata kunci global boleh mengubah suai nilai pembolehubah global di dalam badan fungsi.
Nota: Walaupun Python membenarkan pembolehubah global dan pembolehubah tempatan mempunyai nama yang sama, ia tidak disyorkan untuk berbuat demikian semasa pembangunan sebenar kerana ia boleh mengacaukan kod dan membuat sukar untuk membezakan yang mana pembolehubah global dan yang mana pembolehubah tempatan.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan skop pembolehubah dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!