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

8 浏览
0 Comments

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

我想定义一个带有一些可选参数的函数,比如说 A(必需)和 B(可选)。当没有提供 B 时,我希望它取与 A 相同的值。我该如何实现?

我尝试了这样做,但它不起作用(名称\'B\'未定义):

def foo(A, B=A):
    do_something()

我知道在函数体之前,参数的值没有被赋值。

admin 更改状态以发布 2023年5月24日
0
0 Comments

你可以像这样做。如果B的值为None,则从A中分配它

def foo(A, B=None):
    if B is None:
        B = A
    print 'A = %r' % A
    print 'B = %r' % B

0
0 Comments

你应该在函数内部执行这个操作。

使用你原来的函数:

def foo(A, B=A):
    do_something()

尝试像这样:

def foo(A, B=None):
    if B is None:
        B = A
    do_something()

重要的是,默认参数的函数参数在定义函数时已经赋值。

当你用某个值调用函数 A 时,为 B 赋的默认值已经被赋值并存在函数定义中了,所以此时已经太晚了。

0