我想用一些可选参数定义一个函数,比如说A(强制)和B(可选)。当没有给出B时,我希望它采用与A相同的值。我怎么能这样做?
我试过这个,但它没有用(名字'B'没有定义):
<select class='toggle' id='3' data-role='slider' data-itemID='3'>
<option value='ON'>On</option>
<option value='OFF' selected='selected'>Off</option>
</select>
<input class='dimmerSlider' type='range' id='3' value='15' min='0' max='15' step='1' data-highlight='true' data-itemID='sl3' />
我知道参数的值没有在函数体之前分配。
答案 0 :(得分:4)
你应该在你的功能中做到这一点。
采用原始功能:
def foo(A, B=A):
do_something()
尝试类似:
def foo(A, B=None):
if B is None:
B = A
do_something()
重要的是,当时给出了函数参数的函数默认值,定义了函数。
当您使用A
的某个值调用该函数时,由于B
默认值已经分配并且存在于函数定义中,因此为时已晚。
答案 1 :(得分:1)
你可以这样做。如果B
的值为None
,请从A
def foo(A, B=None):
if B is None:
B = A
print 'A = %r' % A
print 'B = %r' % B