调用父 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,而不是动作。