Im folgenden Codefragment Funktion f
wird wie erwartet ausgeführt:Python - Kurzschließen seltsame Verhalten
def f():
print('hi')
f() and False
#Output: 'hi'
Aber im folgenden ähnlichen Code-Fragment a
nicht erhöht nicht:
a=0
a+=1 and False
a
#Output: 0
Aber wenn wir Kurzschluß mit Wahr anstelle von Falsch a
wird inkrementiert:
a=0
a+=1 and True
a
#Output: 1
Wie funktioniert der Kurzschluss, damit dies funktioniert?
Es könnte sich lohnen zu klären "' (1 und True) 'ergibt" True ", die die ganze Zahl 1 ist." –
In der Tat. Guter Fang. –
Sollen 'a + = 1 und False' nicht in' a = (a + 1) und False' aufgelöst werden, da der '+' Operator eine höhere Priorität hat (https://docs.python.org/3/reference/ expressions.html # operator-precedence), dann wird der gesamte Ausdruck in "a = False" aufgelöst? – Hidden