The*_*One 32 python coding-style variable-assignment
将值赋给像这样的变量是否被认为是不好的风格?
x = "foobar" or None
y = some_variable or None
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,x得到值'foobar'.
tba*_*ack 23
不,这是一种常见的做法.对于比你长得多的表达式,它只被认为是不好的风格.
OP的语法非常好。
“or 赋值”的正式名称是空合并,现在实际上有一个关于它的维基百科页面!https://en.wikipedia.org/wiki/Null_coalescing_operator
这个问题也可能有用:
Is there a Python equals of the C# null-coalescing operator?
我也觉得用那种表情有点不舒服。在 Learning Python 4ed 中,它被称为“有点不寻常的行为”。后来马克·卢茨说:
...事实证明这是 Python 中相当常见的编码范式:从固定大小的集合中选择一个非空对象,只需将它们串在一个 or 表达式中即可。在更简单的形式中,这也通常用于指定默认...
事实上,它们生成简洁的单行表达式,有助于消除代码中的行噪声。
这种行为是 if/else 三元运算符形式的基础:
A = Y if X else Z
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17315 次 |
| 最近记录: |