如何在 Python 中继承属性
How to Inherit Attributes in Python
为什么它打印的是 0 而不是 24?
另外,如果我没有在系统 class 中显式定义 num ,为什么会出现错误,即使我在构造函数中这样做?
from abc import ABC, abstractmethod
class System(ABC):
num = 0
def __init__(self, input):
self.num = input
return
@abstractmethod
def getNum(self):
pass
class FirstSystem(System):
def __init__(self, input):
super().__init__(input)
return
def getNum(self):
return super().num
foo = FirstSystem(24)
print(foo.getNum())
尝试改变
def getNum(self):
return super().num
至
def getNum(self):
return self.num
看看是否有帮助:)
super()
显式调用父class,用于访问被覆盖的方法和对象;即,与您想要的完全相反!正如 Capt. Trojan 指出的那样,self.num
将为您提供您期望的 num
的子 class 版本。
Here 是 class 何时以及何时不使用 super 的 ic 解释。
为什么它打印的是 0 而不是 24? 另外,如果我没有在系统 class 中显式定义 num ,为什么会出现错误,即使我在构造函数中这样做?
from abc import ABC, abstractmethod
class System(ABC):
num = 0
def __init__(self, input):
self.num = input
return
@abstractmethod
def getNum(self):
pass
class FirstSystem(System):
def __init__(self, input):
super().__init__(input)
return
def getNum(self):
return super().num
foo = FirstSystem(24)
print(foo.getNum())
尝试改变
def getNum(self):
return super().num
至
def getNum(self):
return self.num
看看是否有帮助:)
super()
显式调用父class,用于访问被覆盖的方法和对象;即,与您想要的完全相反!正如 Capt. Trojan 指出的那样,self.num
将为您提供您期望的 num
的子 class 版本。
Here 是 class 何时以及何时不使用 super 的 ic 解释。