(Python 2.7问题)
我在python代码库中发现了类似以下的模式:
>>> a = b == 7
>>> a
True
>>> b
7
>>> a = b == -7
>>> a
False
>>> b
7我正在寻找这个问题的术语--我找到了一些其他的答案,它们将(a =b= 7)称为“链分配”。这种格式(a =b == 7)叫什么?
发布于 2016-08-26 03:43:46
b == 7是平等的比较。比较的结果是分配给a的布尔值。
发布于 2016-08-26 03:44:58
这只是一个普通的赋值语句。如果您对一行python代码是如何解析的很好奇,可以试试ast模块:
>>> import ast
>>> ast.dump(ast.parse('a = b == 7'), annotate_fields=False)
"Module([Assign([Name('a', Store())], Compare(Name('b', Load()), [Eq()], [Num(7)]))])"我们可以看到,与b和7进行了相等的比较,并将结果用于对a的赋值。
发布于 2016-08-26 03:45:45
这只是一个变量的布尔表达式赋值:
a = (b == 7)
# ^ comparation expression that evaluate to True or False
# ^ assign the expression to ahttps://stackoverflow.com/questions/39153474
复制相似问题