Python错误“ <方法>缺少1个必需的位置参数:'self'“

Python的新手。尝试创建一个简单的示例,演示2个级别的抽象。 收到错误TypeError:“ HPNotebook”对象不可调用“

我浏览了无数示例,但仍然感到困惑。

要理解,我已经在代码中显示了3个级别。
您能指出我一个可以帮助解释此问题以及如何消除它的地方吗? 提供有关如何更正此问题的建议。 谢谢

from abc import abstractmethod,ABC   #this is to allow abstraction. the ABC forces inherited classes to implement the abstracted methods.

class TouchScreenLaptop(ABC):
    def __init__(self):
        pass
    @abstractmethod      #indicates the following method is an abstract method.
    def scroll(self):    # a function within the parent
        pass             #specifically indicates this is not being defined
    @abstractmethod      #indicates the following method is an abstract method.
    def click(self):    
        pass             #specifically indicates this is not being defined

class HP(TouchScreenLaptop):
    def __init__(self):
        pass
    @abstractmethod         #indicates the following method is an abstract method.
    def click(self):    
        pass  
    def scroll(self):
        print("HP Scroll")

class HPNotebook(HP):
    def __init__(self):
        self()
    def click(self):
        print("HP Click")    
    def scroll(self):
        HP.scroll()

hp1=HPNotebook()
hp1.click()                  #the 2 level deep inherited function called by this instance
hp1.scroll()                 #the 1 level deep inherited function called by this instance
tianli12345 回答:Python错误“ <方法>缺少1个必需的位置参数:'self'“

只需在self()上将super()替换为HPNotebook.__init__,并在HP.scroll()上将super().scroll()替换为HPNotebook.scroll

class HPNotebook(HP):
    def __init__(self):
        super()
    def click(self):
        print("HP Click")    
    def scroll(self):
        super().scroll()

此外,请检查this link以更好地了解python继承。

本文链接:https://www.f2er.com/2702386.html

大家都在问