Function argument's default value equal to another argument
是否可以将函数参数的默认值定义为同一函数定义中的另一个参数?比如:
1 2
| def func(a, b=a):
print a, b |
但那不起作用。
- 为什么不在函数的第一行将a赋给b?
- 你不能这样做,你需要先做b=None,然后再做if b is None: b = a。请参阅stackoverflow.com/q/4575326/3001761(如果您搜索这个,您可能会发现它是微不足道的…)
不,这是不可能的。python解释器认为,当没有全局变量a时,需要将参数b的默认值赋给全局变量a。
您可能想尝试这样的方法:
1 2 3
| def func(a, b=None):
if b is None:
b = a |
- …缺少默认值。
- 这不允许只传递一个变量
- @Ethanbierlin"一个好的投稿人能做的最好的反应就是寻找重复的东西",也就是说,而不是回答。