将函数参数名称传递给Python中的另一个函数

use*_*791 2 python function-parameter

给定一个简单的功能:

def A(a = 1, b = 2):
    return a+b
Run Code Online (Sandbox Code Playgroud)

我想写另一个函数来改变默认参数值,对于a或者b.用户可以通过设置var = a或指定要更改的参数var = b.例如:

def B(var = 'a', new_value = 10):
    temp_dict = {var:new_value}
    ans = A(var)
    return ans    
Run Code Online (Sandbox Code Playgroud)

要么

def B(var = 'a', new_value = 10):
    ans = A(var = new_value)
    return ans
Run Code Online (Sandbox Code Playgroud)

在功能上def B(),设置完成后var = avar = new_value = 10,我希望A(var = new_value)达到同样的效果A(a = 10).你知道写函数的正确方法def B()吗?谢谢.

Moi*_*dri 5

你快到了.从您的B()函数,在进行调用时A(),您需要解压缩temp_dict并将其作为参数传递给A().见下文:

>>> def A(a = 1, b = 2):
...     return a+b
...

>>> def B(var = 'a', new_value = 10):
...     temp_dict = {var:new_value}
...     ans = A(**temp_dict)
        #        ^ unpack the dict, and pass it as an argument
...     return ans
...

>>> B()
12
Run Code Online (Sandbox Code Playgroud)

有关如何**使用dict的更多详细信息,请查看: