首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python解释器中的Walrus操作符

Python解释器中的Walrus操作符
EN

Stack Overflow用户
提问于 2021-09-15 15:42:35
回答 1查看 490关注 0票数 2

当我在Python(3.9.6)解释器中使用walrus操作符时,

代码语言:javascript
复制
>>> walrus:=True

我得到一个语法错误:

代码语言:javascript
复制
  File "<stdin>", line 1
    walrus := True
                  ^
SyntaxError: invalid syntax

这与以下内容有何不同?

代码语言:javascript
复制
>>> print(walrus := True)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-18 13:54:47

这是不同的,因为Python开发人员对于违反Python的禅宗准则“应该有1最好只有一种--很明显的方法”非常矛盾,并且选择了用:=代替大多数普通=的使用而不给表达式添加额外的括号。

与其允许:=在所有上下文中替换=他们特别禁止还没有插入海象的顶级用法:

在表达式语句的顶层禁止使用无括号的赋值表达式。 Y := f(x) #无效(y := f(x)) #有效,尽管不推荐 包含此规则是为了简化用户在赋值语句和赋值表达式之间的选择--在两者都有效的语法位置。

在许多禁止:=的情况下,可以通过在表达式周围添加其他不必要的括号来使其有效,因此:

代码语言:javascript
复制
(walrus:=True)

它工作得很好,但假设大多数人会坚持更简单、更Pythonic的东西,这已经够痛苦的了:

代码语言:javascript
复制
walrus = True

在那种情况下。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69196155

复制
相关文章

相似问题

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