Tôi thấy một vấn đề, tại sao tôi trả về một biến toàn cầu từ từ điển, và khi gọi lại, biến sẽ bị che phủ, mã ở dưới đây, ba dòng số # theo lý thuyết cũng nên được in ra là 1, 2, 3, nhưng thực tế được in ra là 3, 3, 3, không hiểu. Đây là vấn đề mà tôi thấy trong lần kiểm tra lại, phát hiện ra kết quả được in ra đều giống nhau, sau đó tìm ra nguồn gốc từng bước và tìm ra nó ở đây.
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()
Tại sao tôi lại in như thế này?
{'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
