如果 Python 函数None在参数中接收,则许多讨论和 SO 搜索都无法最终回答提供默认值的最佳/最安全/最 Pythonic 方式的问题。这是专门针对datetime参数提出的,以防万一,但理想情况下,我们将我们的方法标准化为所有参数类型。
以下是两种不断出现的“正确”方法:
myval if myval else defaultvalmyval or defaultval它们在功能上是否相同,或者两者之间是否存在细微差别?我非常喜欢第二个选项的简洁明了,但第一个选项的拥护者说它并不总是安全的。任何来自比我更多 Python 经验的人(例如几乎任何人)的任何指导都将不胜感激。
1 是迄今为止首选的条件赋值方法(显式优于隐式)
最好是明确的
myval = myval if myval is not None else defaultval
Run Code Online (Sandbox Code Playgroud)
甚至更好
def some_function(arg1,arg2="defaultValue"):
myval = arg2
Run Code Online (Sandbox Code Playgroud)
主要问题是
x = x or y
Run Code Online (Sandbox Code Playgroud)
永远不能分配 0 的 x 或空数组或任何其他虚假值