在Python中,有一种更简单的方法可以将一个参数默认为另一个参数吗?

0 python arguments default function python-3.3

在Python 3.3.3中,当我尝试

def f(x,y=0):
 z = x+y
 return z
Run Code Online (Sandbox Code Playgroud)

它工作得很好.
但是,当我尝试

def f(x,y=x):
 z = x+y
 return z
Run Code Online (Sandbox Code Playgroud)

我得到NameError: name 'x' is not defined.
我知道我可以做到

def f(x,y=None):
 y = x if y is None else y
 z = x+y
 return z
Run Code Online (Sandbox Code Playgroud)

.


是否有更简洁或更好的方法来获得理想的结果?

use*_*ica 7

否.默认参数在函数定义时计算,在函数定义时,我们还没有x.明确地检查哨兵值是我们能做的最好的事情.