2016-08-25 2 views
0

(Python 2.7 Frage)Was ist diese Art von Kettenzuweisung und Vergleich in Python?

ich in einem Python-Code-Basis ein Muster ähnlich dem folgenden gefunden:

>>> a = b == 7 
>>> a 
True 
>>> b 
7 
>>> a = b == -7 
>>> a 
False 
>>> b 
7 

Ich suche nach der Terminologie für diese - ich einige andere Antworten gefunden, auf welche verwiesen (a = b = 7) als "Kettenzuordnung". Wie lautet das Format (a = b == 7)?

+3

Das glaube ich nicht, dass es irgendeine Phantasie Terminologie für diese ... es ist nur eine Variable auf einen boolean zuweisen. – Karin

+0

Es wäre eine Neuigkeit, wenn diese Art von Aufgabe einen eigenen Namen hätte. Es wird einfach das Ergebnis eines Ausdrucks einem Namen zugewiesen. Ein boolescher Ausdruck/Vergleich in diesem Fall. –

Antwort

1

b == 7 ist Vergleich für die Gleichheit. Das Ergebnis eines Vergleichs ist ein boolescher Wert, der a zugewiesen ist.

1

Dies ist nur eine normale Zuweisungsanweisung. Wenn Sie schon einmal gespannt, wie eine Reihe von Python sind analysiert wird, versuchen Sie das ast Modul:

>>> import ast 
>>> ast.dump(ast.parse('a = b == 7'), annotate_fields=False) 
"Module([Assign([Name('a', Store())], Compare(Name('b', Load()), [Eq()], [Num(7)]))])" 

Wir können sehen, dass es ein Gleichheitsvergleich mit b und 7, und das Ergebnis wird in einer Zuordnung zu a verwendet . Diese

1

ist nur eine Zuordnung von Booleschen Ausdruck einer Variablen:

a =  (b == 7) 
#    ^comparation expression that evaluate to True or False 
# ^assign the expression to a