Saya menemukan sebuah pertanyaan, mengapa saya mengembalikan sebuah variabel global di dalam kamus, dan ketika saya memanggilnya, variabel tersebut akan tertutup, ya, kode di bawahnya, tiga baris yang bernomor # itu secara logis seharusnya dicetak juga 1, 2, 3, ya, tapi sebenarnya dicetak 3, 3, 3 tidak jelas. Ini adalah masalah yang saya temukan dalam pengulangan, dan menemukan bahwa hasilnya dicetak sama, dan kemudian langkah demi langkah menemukan akarnya di sini. Saya mengubah variabel global menjadi variabel lokal tidak ada masalah ini, tetapi saya ingin memahami mengapa ini tidak berhasil, mohon jawabannya.
def fun(a):
dict_zz['one'] = a
return dict_zz
def main():
params()
dict_zz_15min = fun(1)
dict_zz_1h = fun(2)
dict_zz_4h = fun(3)
print(dict_zz_15min) #
print(dict_zz_1h) #
print(dict_zz_4h) #
def params():
global dict_zz
dict_zz = {}
main()
Mengapa saya mencetak seperti ini?
{'one': 3}
{'one': 3}
{'one': 3}
不是key的问题吧,我全局变量换成局部变量就没问题的啊,像这样key不也覆盖的吗?
def fun(a):
dict_zz = {}
dict_zz['one'] = a
return dict_zz
def main():
dict_zz_15min = fun(1)
dict_zz_1h = fun(2)
dict_zz_4h = fun(3)
print(dict_zz_15min)
print(dict_zz_1h)
print(dict_zz_4h)
main()
- 1
