目前,我有一个类似的功能:
def my_func(*args):
#prints amount of arguments
print(len(args))
#prints each argument
for arg in args:
print(arg)
我想将多个参数传递给该函数,但以下内容对我不起作用。否则,它在星号*上给出语法错误。
my_func(
*(1, 2, 3, 4)
if someBool is True
else *(1, 2)
)
我发现的解决方法是先放入1和2,然后再放入3和4,同时检查someBool。
my_func(
1, 2,
3 if someBool is True else None,
4 if someBool is True else None
)
我对上面的命令很满意,因为我的函数检查None,但是如果有其他选择,我将很高兴感谢他们。
最佳答案
将*
移到... if ... else ...
之外:
my_func(
*((1, 2, 3, 4)
if someBool is True
else (1, 2))
)
关于python - 函数参数打包和解包Python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53255230/