gpt4 book ai didi

python - 有效地在多个函数中使用多个参数

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:54 26 4
gpt4 key购买 nike

我一直在研究 *args**kwargs 的使用,我已经咨询过一些相关的帖子,其中提供了很多有趣的例子:

What does ** (double star/asterisk) and * (star/asterisk) do for parameters?

*args and **kwargs?

How to expand a list to function arguments in Python

Converting Python dict to kwargs?

然而,以上线程并没有对这个问题提供明确的答案在多个函数中灵活使用相同(关键字)参数它们的默认值的最佳方法是什么?我所说的灵活是指还能够定义额外的(关键字)每个函数中的参数视具体情况而定。

本质上,我想避免在每个函数中一遍又一遍地手动定义相同的参数,而不是只关注额外的参数每个功能都需要。

例如,代替:

def testfunction1(voltage=0, state="bleedin", status=0):
...do something...

def testfunction2(voltage=0, state="bleedin", status=0, action="VOOM"):
...do something else...

(注意:status 可以是列表、元组或数组之类的任何东西。)

我想要以下内容:

d = {"voltage": 0, "state": "bleedin", status} 

def testfunction1(**d):
...do something...

def testfunction2(**d, action="VOOM"):
...do something else...

然后我可以像这样调用每个函数:

testfunction1(voltage=5, state="healthy")

或者像这样直接指定参数:

testfunction1((5, "healthy", statuslist)

希望这是清楚的,但如有必要,我很乐意进一步澄清。

最佳答案

这是一个使用评论中提到的类的方法。

class test:
def __init__(self,voltage = 5, state = "bleedin", status = 0):
self.arguments = {'voltage' : voltage, 'state' : state, 'status': status}
#You essentially merge the two dictionary's with priority on kwargs
def printVars(self,**kwargs):
print({**self.arguments,**kwargs})

这是一个示例运行

>>> a = test()
>>> a.printVars(status = 5, test = 3)
{'voltage': 5, 'state': 'bleedin', 'status': 5, 'test': 3}

关于python - 有效地在多个函数中使用多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49367393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com