我想保存在local中传递的关键字参数,稍后将它们传递给另一个方法,然后我有这个错误。我能理解为什么我的代码出现了这个错误,下面是我的代码。
class A():
def testA(self):
self.conf = dict(security='BHP')
self.client = B('FE')
self.client.addConfigure(**self.conf)
}
class B(threading.Thread):
def __init__(self, name):
threading.Thread.__init__(self)
self.ServerProxy = None
def run(self):
if self.flag == 'X':
self.ServerProxy.runX(self.para)
elif self.flag == 'Y':
self.ServerProxy.runY(self.para)
elif self.flag == 'Z':
self.ServerProxy.runZ(self.para)
def addConfigure(self, **kwargs):
self.para = kwargs
}
runY
在其他类
def runY(self, **kwargs):
为什么错误弹出
<Fault 1: "<class 'TypeError'>:runY() takes exactly 1 positional argument (2 given)">
答案 0 :(得分:0)
ServerProxy是一个实例
您将self.para
作为参数传递
runY
传递了这些参数:
runY(<server_proxy_instance>, <self.para>):
但定义如下
runY(self, **kwargs):
当你将self.para
推入**kw
时,应该给>>> def foo(x, **kw):
... pass
...
>>> foo("bar", "baz")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: foo() takes 1 positional argument but 2 were given
提供什么名称(密钥)?
仅使用常规功能的简化版
{{1}}