Kumulative Zuweisungsanweisung
Die kumulative Zuweisungsanweisung ist eine Kombination aus binären Operationen und Zuweisungsanweisungen in einer einzigen Anweisung.
>>> a = 1
>>> a = a + 1
>>> a
2
>>> a = 1
>>> def f():
... b = a + 1
... return b
...
>>> f()
2
>>> a = 1
>>> def f():
... a = a + 1
... return a
...
>>> f()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in f
UnboundLocalError: local variable 'a' referenced before assignment
>>> a = 1
>>> def f():
... global a
... a = a + 1
... return a
...
>>> f()
2
Warum erhalte ich einen UnboundLocalError, wenn eine Variable einen Wert hat?
Demnach scheint es so erklärt zu werden.
Dies liegt daran, dass beim Zuweisen zu einer Variablen innerhalb eines Bereichs diese Variable für diesen Bereich lokal wird und die gleichnamige Variable im äußeren Bereich verbirgt.
Vielen Dank an @gotta_dive_into_python
Ich experimentiere damit, dass "beim Zuweisen zu einer Variablen in einem bestimmten Bereich diese Variable für diesen Bereich lokal wird" und dass es dasselbe ist, das in "local ()" usw. registriert ist. In meinem Haus gibt es noch ein anderes Geheimnis.
>>> def f():
... a = locals()
... return a
...
>>> f()
{}
>>> def f():
... a = locals()
... b = 1
... return a
...
>>> f()
{}
>>> def f():
... a = locals()
... b = locals()
... return a
...
>>> f()
{'a': {...}}
Recommended Posts