我有一个函数,它应该有一个可选参数。我希望可选参数与其他参数相同。像这样:
def foo(arg1, arg2, src, dst=src):
...
...
参数dst
是可选参数。问题是,在调用dst
时未提供foo
时,它应与src
相同。
有什么想法吗?
谢谢
答案 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
,[]
...)