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 = a和var = new_value = 10,我希望A(var = new_value)达到同样的效果A(a = 10).你知道写函数的正确方法def B()吗?谢谢.
你快到了.从您的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的更多详细信息,请查看: