【发布时间】:2020-11-27 01:33:47
【问题描述】:
查看Python-Dev 和StackOverflow,Python 的三元运算符等价物是:
a if condition else b
看了PEP-572和StackOverflow,我明白什么是海象算子了:
:=
现在我正在尝试将“海象运算符的赋值”和“三元运算符的条件检查”组合成一个语句,例如:
other_func(a) if (a := some_func(some_input)) else b
例如,请考虑下面的sn-p:
do_something(list_of_roles) if list_of_roles := get_role_list(username) else "Role list is [] empty"
我没能完全理解语法。尝试了各种组合,每次解释器抛出SyntaxError: invalid syntax。我的python版本是3.8.3。
我的问题是在三元运算符中嵌入海象运算符的正确语法是什么?
【问题讨论】:
-
那你试过了吗?发生了什么?
-
@Chris,是的,我确实尝试过。我可能想到的所有排列和组合都以语法错误结束。很久之后,我放弃了。
-
我已经更新了我的问题。很抱歉之前错过了信息。作为菜鸟的缺点。 :-(
标签: python python-3.x conditional-operator walrus-operator