我想用一些可选参数定义一个函数,比如说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