N = 1 or val in python



在lua中,我可以表达如下:

function f(arg)
N = arg or 0
print(N) 
end 
F()
F(5)
Output: 
--> 0
--> 5

有没有办法在python中做到这一点。。。而不是:

arg = None
If arg: 
N = arg
else: 
N = 0
--> n = 0 
-- set arg to 5 
--> n = 5

只是好奇,我喜欢Lua的1行实现。另一个对我来说有点刺耳。

您可以使用以下方法或其他方法:

def f(arg=None):
N = arg or 0
print(N)
f()  # 0
f(5)  # 5

只要arg为False或None,就会选择第二个选项。https://docs.python.org/3/library/stdtypes.html#boolean-操作与否

编辑:您正在寻找下一个

N = next(iter(args), 0)

args是传递给函数的所有附加参数的元组。您可以将nextiter结合使用来迭代这些参数,并选择下一个/第一个(如果存在(。如果不是,则会将默认值分配给N(在本例中为0(。它类似于N = args[0] if len(args) > 0 else 0,但没有检查。例如,这里有更多的解释。

最新更新