[英]How to get parent constructor attributes in child constructor?
如何从子类构造函数中的父类构造函数获取属性?
class A:
def __init__(number):
self.number = number
class B(A):
def __init__():
self.number = A.number?
test = B(A)
print(test.number)
我不知道该怎么做,以免将参数传递给子类。
我认为你那里有问题。 父类/派生类的正确代码是
class A:
def __init__(self, number):
self.number = number
class B(A):
def __init__(self, number):
super().__init__(0) # Initialize parent class.
self.number = number
# Instantiate a B object
test = B(7)
# Print the property
print(test.number)
这将始终在屏幕上产生“7”。 现在 A 和 B __init__
方法都引用对象的相同“数字”属性,因此,两个类在初始化时设置相同的属性没有多大意义。 如果您将 B 的__init__
方法更改为:
class B(A):
def __init__(self, number):
self.number = number
super().__init__(0) # Initialize parent class.
然后print(test.number)
将始终打印“0”而不是您在创建时传递的任何内容,因为您正在覆盖该属性。
典型的代码宁愿是:
class A:
def __init__(self, number):
self.number = number
class B(A):
def __init__(self, number):
super().__init__(number)
这样,派生类以有意义的方式初始化父类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.