2013-11-24 3 views
-1

Я хочу сохранить аргументы ключевого слова, переданные в локальном, и передать их другому методу позже, после чего у меня есть эта ошибка. Я мог понять, почему мой код пришел с этой ошибкой, ниже мой код.Python «принимает ровно 1 позиционный аргумент (2 данный)»

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)"> 
+2

Какие дополнительные фигурные скобки для? –

+0

какая линия вы имеете в виду? – Keannylen

+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 
+0

, который является self.conf = dict (security = 'BHP'). Я использовал – Keannylen

+0

, возможно, вы имеете в виду передайте его следующим образом: 'self.ServerProxy.runY (** self.para)' –

+0

Я попытался таким образом, но он говорит, что «безопасность» - это неожиданный аргумент – Keannylen

Смежные вопросы