首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的这种链赋值和比较是什么?

python中的这种链赋值和比较是什么?
EN

Stack Overflow用户
提问于 2016-08-26 03:39:08
回答 3查看 103关注 0票数 0

(Python 2.7问题)

我在python代码库中发现了类似以下的模式:

代码语言:javascript
复制
>>> a = b == 7
>>> a
True
>>> b
7
>>> a = b == -7
>>> a
False
>>> b
7

我正在寻找这个问题的术语--我找到了一些其他的答案,它们将(a =b= 7)称为“链分配”。这种格式(a =b == 7)叫什么?

EN

回答 3

Stack Overflow用户

发布于 2016-08-26 03:43:46

b == 7是平等的比较。比较的结果是分配给a的布尔值。

票数 1
EN

Stack Overflow用户

发布于 2016-08-26 03:44:58

这只是一个普通的赋值语句。如果您对一行python代码是如何解析的很好奇,可以试试ast模块:

代码语言:javascript
复制
>>> import ast
>>> ast.dump(ast.parse('a = b == 7'), annotate_fields=False)
"Module([Assign([Name('a', Store())], Compare(Name('b', Load()), [Eq()], [Num(7)]))])"

我们可以看到,与b7进行了相等的比较,并将结果用于对a的赋值。

票数 1
EN

Stack Overflow用户

发布于 2016-08-26 03:45:45

这只是一个变量的布尔表达式赋值:

代码语言:javascript
复制
 a    =      (b == 7)
#               ^ comparation expression that evaluate to True or False 
#     ^ assign the expression to a
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39153474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档