编辑:此错误特定于AWS Lambda
你好,我无法弄清楚为什么我不能从孩子的方法中调用父母的方法。
我在classes/IDKKKK.py
class IDKKKK:
def foobar(self, foo, bar):
return { 'foo': foo, 'bar': bar}
def foobar2(self, fo, ob, ar):
return {'foobar': fo+ob+ar}
我在classes/OMGGG.py
from classes.IDKKKK import IDKKKK
class OMGGG(IDKKKK):
def childFoo(self):
idc = {}
return super().foobar(idc, super().foobar2('idk', ' what is ', 'going on'))
我创建了OMGGG
的实例并调用childFoo()
,我在super() has no attribute 'foobar'
中收到了main.py
from classes.OMGGG import OMGGG
omg = OMG()
print(omg.childfoo())
我正在使用python 3.7,因此super()
应该可以工作,但是我尝试了
super(OMGGG, self).foobar(...
无济于事。
不太确定我在做什么错。我想我可能会错误地导入它?
编辑:看来我忘记添加自己了。这是翻译错误。
答案 0 :(得分:3)
您的childFoo
方法需要使用self
作为参数:
def childFoo(self):
...
答案 1 :(得分:2)
您不需要使用super()
。只需使用self
。
from classes.IDKKKK import IDKKKK
class OMGGG(IDKKKK):
def childFoo(self):
idc = {}
return self.foobar(idc, self.foobar2('idk', ' what is ', 'going on'))
foobar
类中还存在foobar2
和OMGGG
,因为它们是从IDKKKK
类继承过来的。
同样@ user2000783和Olivier建议,也将self
作为childFoo
参数传递。