Cur*_*arn 21 python function default-value keyword-argument
考虑以下函数,它在Python中不起作用,但我将用它来解释我需要做什么.
def exampleFunction(a, b, c = a):
...function body...
Run Code Online (Sandbox Code Playgroud)
这是我想为变量分配变量c所需的值a,除非指定了替代值.上面的代码在python中不起作用.有没有办法做到这一点?
谢谢.
Nic*_*k T 29
def example(a, b, c=None):
if c is None:
c = a
...
Run Code Online (Sandbox Code Playgroud)
关键字参数的默认值不能是变量(如果是,则在定义函数时将其转换为固定值.)通常用于将参数传递给main函数:
def main(argv=None):
if argv is None:
argv = sys.argv
Run Code Online (Sandbox Code Playgroud)
car*_*arl 15
这种一般模式可能是最好的和最可读的:
def exampleFunction(a, b, c = None):
if c is None:
c = a
...
Run Code Online (Sandbox Code Playgroud)
你必须小心,这None不是一个有效的状态c.
如果要支持"无"值,可以执行以下操作:
def example(a, b, *args, **kwargs):
if 'c' in kwargs:
c = kwargs['c']
elif len(args) > 0:
c = args[0]
else:
c = a
Run Code Online (Sandbox Code Playgroud)