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