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

请注意,这些版本将阻止 dstNone 以外的值(例如 False[] ...)