В Python нестатические методы явно принимают self
в качестве первого аргумента.
foo.bar()
любой должен быть статическим методом:
class foo():
@staticmethod
def bar(name):
return 'hello %s' % name
или должен принять self
в качестве первого аргумента:
class foo():
def bar(self, name):
return 'hello %s' % name
В результате получается, что в вашем коде name
интерпретируется как параметр self
(который просто называется чем-тоеще).Когда вы вызываете foo().bar(name)
, Python пытается передать два аргумента (self
и name
) foo.bar()
, но метод принимает только один.