Type/to search
3
Follow
0
Followers
Ich habe ein Problem mit globalen Python-Variablen. Bitte helfen Sie mir, es zu lösen.
Help
Created 2021-09-08 14:20:01  Updated 2021-09-08 15:09:44
 6
 1198

Ich habe eine Frage gefunden, warum ich eine globale Variable im Wörterbuch zurückgebe, und wenn ich sie aufrufe, werden sie überschrieben, der Code ist unten, die drei Zeilen mit der Nummer # sollten logischerweise 1, 2, 3 ausgedruckt werden, aber die tatsächlichen Ausdrucke sind 3, 3, 3 verwirrend. Das ist das Problem, das ich bei der Rückprüfung gefunden habe, und die Ergebnisse wurden alle ausgedruckt, und dann Schritt für Schritt die Wurzel hier gefunden.
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()

Warum habe ich das so ausgedruckt?
{'one': 3}
{'one': 3}
{'one': 3}

Related Recommendations
Comment
All comments (6)

    你用的同一个key,都覆盖了.你学习下python的基础

    5 years ago

    你这话有点瞧不起人了啊,什么算python基础呢?我之前在聚宽就用python写策略了....

    5 years ago

    def fun(a):

    dict_zz['one'] = a
    return dict_zz
    def main():
    params()
    dict_zz_15min = fun(1)
    print(dict_zz_15min)
    dict_zz_1h = fun(2)
    print(dict_zz_1h)
    dict_zz_4h = fun(3)
    print(dict_zz_4h) #

    def params():
    global dict_zz
    dict_zz = {}
    main()

    5 years ago

    你直接说字典是浅拷贝我就明白了......我的锅,学了这么久python这个都没搞懂

    5 years ago

    不是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()

    5 years ago

    不是key的问题吧,我全局变量换成局部变量就没问题的啊

    5 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)