我想定义一个带有一些可选参数的函数,比如说 A(强制)和 B(可选)。当没有给出 B 时,我希望它与 A 具有相同的值。我怎么能这样做?
我已经尝试过了,但它不起作用(未定义名称“B”):
def foo(A, B=A):
do_something()
我知道参数的值不是在函数体之前分配的。
我想定义一个带有一些可选参数的函数,比如说 A(强制)和 B(可选)。当没有给出 B 时,我希望它与 A 具有相同的值。我怎么能这样做?
我已经尝试过了,但它不起作用(未定义名称“B”):
def foo(A, B=A):
do_something()
我知道参数的值不是在函数体之前分配的。
你应该在你的函数内部做这个。
采用您的原始功能:
def foo(A, B=A):
do_something()
尝试类似:
def foo(A, B=None):
if B is None:
B = A
do_something()
重要的是,函数参数的函数默认值是在定义函数时给出的。
当您调用具有某个值的函数时A
,为时已晚,因为B
默认值已经分配并存在于函数定义中。
你可以这样做。如果B
有一个值None
然后分配它A
def foo(A, B=None):
if B is None:
B = A
print 'A = %r' % A
print 'B = %r' % B