Python - 如何将默认参数设置为等于另一个参数
Python - how to set default parameter equal to another parameter
我有一个函数,它应该有一个可选参数。我希望可选参数与其他参数相同。像这样:
def foo(arg1, arg2, src, dst=src):
...
...
参数dst
为可选参数。问题是当调用 foo
时没有给出 dst
,它应该与 src
.
相同
有什么想法吗?
谢谢
这个怎么样?
def foo(arg1, arg2, src, dst=None):
dst = dst if dst is not None else src
测试:
>>> def foo(arg1, arg2, src, dst=None):
... dst = dst if dst is not None else src
... print dst
...
>>> foo(0, 0, "test")
test
根据@TanveerAlam 的评论,我不想对您的论点做出假设(如果 dst
可以是 False
会怎样?),我确实在我的原始 post 我会把它们留在这里供参考:
def foo(arg1, arg2, src, dst=None):
dst = dst if dst else src
甚至:
def foo(arg1, arg2, src, dst=None):
dst = dst or src
请注意,这些版本将阻止 dst
中 None
以外的值(例如 False
、[]
...)
我有一个函数,它应该有一个可选参数。我希望可选参数与其他参数相同。像这样:
def foo(arg1, arg2, src, dst=src):
...
...
参数dst
为可选参数。问题是当调用 foo
时没有给出 dst
,它应该与 src
.
有什么想法吗?
谢谢
这个怎么样?
def foo(arg1, arg2, src, dst=None):
dst = dst if dst is not None else src
测试:
>>> def foo(arg1, arg2, src, dst=None):
... dst = dst if dst is not None else src
... print dst
...
>>> foo(0, 0, "test")
test
根据@TanveerAlam 的评论,我不想对您的论点做出假设(如果 dst
可以是 False
会怎样?),我确实在我的原始 post 我会把它们留在这里供参考:
def foo(arg1, arg2, src, dst=None):
dst = dst if dst else src
甚至:
def foo(arg1, arg2, src, dst=None):
dst = dst or src
请注意,这些版本将阻止 dst
中 None
以外的值(例如 False
、[]
...)