Python 函数参数';s的默认值等于另一个参数

Python 函数参数';s的默认值等于另一个参数,python,function,arguments,default,Python,Function,Arguments,Default,是否可以将函数参数的默认值定义为同一函数定义中的另一个参数?比如: def func(a, b=a): print a, b 但那不起作用。不,这是不可能的。Python解释器认为,当没有全局变量a时,需要将参数b的默认值赋给全局变量a 您可能想尝试以下方法: def func(a, b=None): if b is None: b = a 为什么不在函数的第一行将a分配给b?您不能这样做,您需要执行b=None然后如果b为None:b=a。看到了吗(如果你搜索的

是否可以将函数参数的默认值定义为同一函数定义中的另一个参数?比如:

def func(a, b=a):
  print a, b

但那不起作用。

不,这是不可能的。Python解释器认为,当没有全局变量
a
时,需要将参数
b
的默认值赋给全局变量
a

您可能想尝试以下方法:

def func(a, b=None):
    if b is None:
        b = a

为什么不在函数的第一行将
a
分配给
b
?您不能这样做,您需要执行
b=None
然后
如果b为None:b=a
。看到了吗(如果你搜索的话,你会发现这个…),这不允许只通过一个variable@EthanBierlein“一个好的投稿人能做出的最佳反应是搜索重复的内容”——即,而不是回答。