这是我第一次尝试使用super()
,我对此代码进行了许多小的更改,但在super()
所在的行上却出现了所有错误。
我在SO上也看到了类似的问题,但在我的情况下它们不起作用,或者我做错了事
您能帮我从getMessagesBodies()
打电话给list()
吗?
class Gmail:
def getMessagesBodies(self, text):
return self.unpackPayload(text)
def unpackPayload(self, text):
return (text)
class getMessages:
def __init__(self):
self.service = auth()
def list(self,text):
return super(self).getMessagesBodies(text) # error here, how to call getMessagesBodies properly?
答案 0 :(得分:1)
问题是您从未为getMessages
类指定父类。
您应该像这样定义类:
class getMessages(Gmail):
除非子类覆盖getMessagesBodies()
函数,否则实际上不必使用super()
来指定要调用父函数。通过在子类中使用self.getMessagesBodies()
,由于子级从父级继承了所有相同的函数,因此它将自动调用父级的函数。
因此您可以在不使用超级类的情况下调用该函数:
self.getMessagesBodies(text)
还有一个提示,就是getMessages
看起来更像是函数名而不是类。通常,类是全大写的,并且是对象,而不是动作。