Python super()没有属性父方法

Python super()没有属性父方法,python,oop,aws-lambda,Python,Oop,Aws Lambda,编辑:此错误特定于AWS Lambda 您好,我无法理解为什么不能从子方法调用父方法 我在classes/idkkk.py中定义了一个父类 我在classes/OMGGG.py中定义了一个子类 我创建了一个OMGGG实例并调用childFoo,我收到的super在main.py中没有属性“foobar” 我使用的是Python3.7,所以super应该可以工作,但是我尝试了 超级美格,赛尔夫,福巴 无济于事 不太清楚我做错了什么。我在想我可能导入不正确 编辑:看来我忘记添加self了。这是翻译错

编辑:此错误特定于AWS Lambda

您好,我无法理解为什么不能从子方法调用父方法

我在classes/idkkk.py中定义了一个父类

我在classes/OMGGG.py中定义了一个子类

我创建了一个OMGGG实例并调用childFoo,我收到的super在main.py中没有属性“foobar”

我使用的是Python3.7,所以super应该可以工作,但是我尝试了

超级美格,赛尔夫,福巴

无济于事

不太清楚我做错了什么。我在想我可能导入不正确

编辑:看来我忘记添加self了。这是翻译错误。

您不需要使用super。只要用自己

从技术上讲,OMGGG类中也存在foobar和foobar2,因为它从IDKKK类继承了它们

也如@user2000783和建议的,将self作为childFoo参数传递。

您的childFoo方法需要将self作为参数:

def childFoo(self):
    ...

这是真的,但它没有回答问题。这可能是一个评论,我想它实际上回答了这个问题。super需要那个self实例才能工作。所以这已经在我的原始代码中了,我在运行时忘记了translating@Rodrick但这解决了你的问题。所以你的错误要么不能被复制,要么你的原始代码有这个错误,而你没有notice@OlivierMelan我认为你是对的。特定上下文位于AWS Lambda函数中,因此它可能特定于该函数。为了澄清,我的代码有childFooself,但我仍然收到错误。下面是添加self后的一个工作示例:我不知道您的做法有什么不同。如何准确地调用childFoo?您是以静态方法编写的。@OlivierMelançon我在尝试self.foobar时添加了实例化代码。。。我收到[ERROR]AttributeError:“OMGGG”对象没有属性“foobar”
from classes.IDKKKK import IDKKKK

class OMGGG(IDKKKK):
    def childFoo(self):
        idc = {}
        return super().foobar(idc, super().foobar2('idk', ' what is ', 'going on'))
from classes.OMGGG import OMGGG

omg = OMG()
print(omg.childfoo())
from classes.IDKKKK import IDKKKK

class OMGGG(IDKKKK):
    def childFoo(self):
        idc = {}
        return self.foobar(idc, self.foobar2('idk', ' what is ', 'going on'))
def childFoo(self):
    ...