missing 1 required positional argument: ' self '“-6ren"> missing 1 required positional argument: ' self '“-Python 新手。尝试创建一个简单的示例来演示 2 个级别的抽象。收到错误 TypeError: 'HPNotebook' 对象不可调用“ 我已经浏览了大量的例子,但仍然被难住了。 为了理解,我在代-6ren">
gpt4 book ai didi

Python错误 " missing 1 required positional argument: ' self '“

转载 作者:行者123 更新时间:2023-12-01 00:06:33 24 4
gpt4 key购买 nike

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

最佳答案

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

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

另外,请检查this link为了更好地理解 python 继承。

关于Python错误 "<method> missing 1 required positional argument: ' self '“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59939375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com