Python - 如何将默认参数设置为等于另一个参数

时间:2015-03-02 08:29:02

标签: python default optional-parameters

我有一个函数,它应该有一个可选参数。我希望可选参数与其他参数相同。像这样:

def foo(arg1, arg2, src, dst=src):
  ...
  ...

参数dst是可选参数。问题是,在调用dst时未提供foo时,它应与src相同。

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:3)

这个怎么样?

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怎么办?),我确实在原帖中使用了较短的版本而我将它们留在这里作为参考:

def foo(arg1, arg2, src, dst=None):
    dst = dst if dst else src

甚至:

def foo(arg1, arg2, src, dst=None):
    dst = dst or src

请注意,这些版本会阻止None中的dst以外的值(例如False[] ...)