Eu encontrei uma questão, por que eu retorno um dicionário global variável, e quando a chamada, a variável será coberto ah, o código está abaixo, o número de três linhas que, em teoria, deveria ser impresso também 1, 2, 3, ah, mas na verdade foi impresso 3, 3, 3 confuso. Este é o problema que eu encontrei no teste de retorno, descobriu que os resultados foram impressos todos iguais, em seguida, passo a passo para encontrar a raiz e descobrir aqui. Eu mudei a variável global para variável local não tem esse problema, mas eu quero entender por que isso não funciona, por favor, me ajude.
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()
Porque é que eu imprimi isto?
{'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
