我有一个接受的函数*args,但我想设置一个默认元组,以防没有提供.(这是不可能的def f(*args=(1, 3, 5)),这会引发一个SyntaxError.)最好的方法是什么?预期的功能如下所示.
f()
# I received 1, 2, 3!
f(1)
# I received 1!
f(9, 3, 72)
# I received 9, 3, 72!
Run Code Online (Sandbox Code Playgroud)
以下功能g将提供正确的功能,但我更喜欢*args.
def g(args=(1, 2, 3)):
return "I received {}!".format(', '.join(str(arg) for arg in args))
g()
# I received 1, 2, 3!
g((1,))
# I received 1!
g((9, 3, 72))
# I received 9, 3, 72!
Run Code Online (Sandbox Code Playgroud)
Rai*_*ide 11
你可以检查args你的函数是否真实:
def g(*args):
if not args:
args = (1, 2, 3)
return "I received {}!".format(', '.join(str(arg) for arg in args))
Run Code Online (Sandbox Code Playgroud)
如果没有args传递给函数,它将导致一个空元组,其计算结果为False.
如果没有收到任何参数,args将是一个空元组.您不能在方法签名本身中添加默认值,但可以检查是否args为空并将其替换为函数内的回退值.
def g(*args):
if not args:
args = (1, 2, 3)
return 'I received {}!'.format(', '.join(str(arg) for arg in args))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |