调用父 class 函数
Call parent class function
这是我第一次尝试使用 super()
,我尝试对这段代码进行许多小改动,但是我在 super()
所在的行上遇到了所有错误。
我在 SO 上看到了类似的问题,但它们对我的情况不起作用,或者我做错了什么
你能帮我从 list()
打电话给 getMessagesBodies()
吗?
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?
问题是您从未指定 parent class 是什么 getMessages
class。
您应该像这样定义 class:
class getMessages(Gmail):
除非你的 child class 覆盖了 getMessagesBodies()
函数,你实际上不必使用 super()
来指定你想调用 parent 功能。通过在 child class 中使用 self.getMessagesBodies()
,它将自动调用 parent 的函数,因为 child 继承了 parent 的所有相同函数].
所以你可以在不使用 super 的情况下调用函数,例如:
self.getMessagesBodies(text)
此外,提示 getMessages
看起来更像是一个函数名称,而不是 class。通常 classes 完全大写并且是 object,而不是动作。
这是我第一次尝试使用 super()
,我尝试对这段代码进行许多小改动,但是我在 super()
所在的行上遇到了所有错误。
我在 SO 上看到了类似的问题,但它们对我的情况不起作用,或者我做错了什么
你能帮我从 list()
打电话给 getMessagesBodies()
吗?
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?
问题是您从未指定 parent class 是什么 getMessages
class。
您应该像这样定义 class:
class getMessages(Gmail):
除非你的 child class 覆盖了 getMessagesBodies()
函数,你实际上不必使用 super()
来指定你想调用 parent 功能。通过在 child class 中使用 self.getMessagesBodies()
,它将自动调用 parent 的函数,因为 child 继承了 parent 的所有相同函数].
所以你可以在不使用 super 的情况下调用函数,例如:
self.getMessagesBodies(text)
此外,提示 getMessages
看起来更像是一个函数名称,而不是 class。通常 classes 完全大写并且是 object,而不是动作。