(Python 2.7问题)
我在python代码库中找到了类似于以下的模式:
>>> a = b == 7
>>> a
True
>>> b
7
>>> a = b == -7
>>> a
False
>>> b
7
我正在寻找这个术语 - 我发现其他一些答案(a = b = 7)称为“链分配”。什么是格式(a = b == 7)?
答案 0 :(得分:1)
CREATE TABLE test (a BIT(3), b BIT VARYING(5));
INSERT INTO test VALUES (B'101', B'00');
INSERT INTO test VALUES (B'10', B'101');
ERROR: bit string length 2 does not match type bit(3)
INSERT INTO test VALUES (B'10'::bit(3), B'101');
SELECT * FROM test;
a | b
-----+-----
101 | 00
100 | 101
是平等的比较。比较结果是分配给b == 7
的布尔值。
答案 1 :(得分:1)
这只是一个正常的赋值语句。如果您对如何解析一行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
的分配。
答案 2 :(得分:1)
这只是将布尔表达式赋值给变量:
a = (b == 7)
# ^ comparation expression that evaluate to True or False
# ^ assign the expression to a