2015-11-04 112 views
2

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

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

但这并没有奏效。

+0

为什么不分配'了'在函数的第一行'B'? – McGlothlin

+2

你不能这样做,你需要做'b = None'然后'如果b是None:b = a'。请参阅http://stackoverflow.com/q/4575326/3001761(如果您搜索此内容,您可能会发现它很平凡......) – jonrsharpe

回答

1

不,这是不可能的。 Python解释器认为,如果没有全局变量a,您想要将参数b的默认值分配给全局变量a

你可能想尝试这样的事:

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

...缺少默认值。 – jonrsharpe

+0

@jonrsharpe一秒钟,发帖时就忘记了。 –

+0

这不会允许只传递一个变量 –