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

Python optional function argument to default to another argument's value

我想定义一个带有一些可选参数的函数,比方说 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