Ich habe den folgenden Beispielcode:Globale Wörterbuch hat Wertänderung
A = None
class App(object):
def __init__(self, a):
global A
A = a
a = {'x': 1}
print(A) # None
App(a)
print(A) # {'x': 1}
a['x'] = 2
print(A) # {'x': 2} # value change if dictionary
a = 2
print(A) # {'x': 2} # value not change
Aber ich weiß nicht, warum global Ein hat Änderungswert? Helfen Sie mir bitte wissen
So wie 'print (a)' das Objekt selbst druckt, anstatt die Zeichenkette 'a' zu drucken, weist' A' dem Objekt selbst 'A' zu, nicht der Name "a". 'A' ist dasselbe wie' a', nur weil sie sich auf dasselbe Objekt beziehen. Wenn Sie 'a ['x'] = 2 'verwenden, führen Sie eine Operation für das Objekt aus. Da sich 'A' auf dasselbe Objekt bezieht, sind die Änderungen sichtbar, wenn Sie' A' drucken. Wenn Sie "a = 2" sagen, bezieht sich "a" jetzt auf ein anderes Objekt. Es ändert nicht das Objekt, auf das es sich bezog, also sind die Änderungen in "A" nicht sichtbar. – zondo
@zondo nett, ich denke, hier ist die Antwort, was ich brauche –