代码之家  ›  专栏  ›  技术社区  ›  Karol Zlot Mickael

调用父类函数

  •  0
  • Karol Zlot Mickael  · 技术社区  · 7 年前

    super() ,我尝试了许多对代码的小改动,但在第行出现了所有的错误 超级() 是。

    你能帮我打个电话吗 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?
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Karl    7 年前

    问题是您从未指定 getMessages 班级。

    class getMessages(Gmail):
    

    除非您的子类重写 getMessagesBodies() 函数,您实际上不必使用 super() 指定要调用父函数。通过使用 self.getMessagesBodies()

    因此,您可以调用函数而无需使用super-like:

    self.getMessagesBodies(text)
    

    还有一个提示是 更像是函数名而不是类。通常,类是完全大写的,是一个对象,而不是一个动作。