Python可选函数参数默认为另一个参数的值

时间:2016-01-27 00:34:37

标签: python python-2.7 default-value optional-arguments

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

我知道参数的值没有在函数体之前分配。

2 个答案:

答案 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