[英]How to pass arguments to parent class with inheritance and with super keyword?
我的程序如下所示:
class BioData:
def __init__(self, FirstName, LastName):
self.FirstName = FirstName
self.LastName = LastName
class BioData_OP(BioData):
def __init__(self, age, address):
super().__init__(FirstName,LastName)
self.age = age
self.address = address
mydata = BioData_OP(36,"CNGF","Big","Bee")
我收到一个错误。 我知道如果我通过两个 arguments 它不会给我一个错误,但在这种情况下我怎么能得到名字和姓氏?
我不想在 class BioData_OP
中初始化它们的值。 我需要为 BioData 创建一个单独的 object 吗? 如果是,那么使用 inheritance 或super
关键字有什么好处。
inheritance的要点是表示某个class(ex. Dog
)与父class(ex. Animal
)有“是”的关系。 因此, Dog
是一种Animal
,但具有只有狗才有的某些属性(或仅适用于狗)。
class Animal:
def __init__(self, name):
self.name = name
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name)
self.breed = breed
a_dog = Dog("woolfie", "labrador")
在这里, __init__
仍然采用name
,但也采用特定于狗的额外属性,例如breed
。 对于公共属性name
,您可以将其传递给带有super
的父 class 。
因此,将其应用于您的代码,我假设BioData_OP
object是一种BioData
,但添加了age
和address
属性。 __init__
可能仍应接受相同的名字和姓氏,但只是为age
和address
添加了参数。
class BioData:
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
class BioData_OP(BioData):
def __init__(self, first_name, last_name, age, address):
super().__init__(first_name, last_name)
self.age = age
self.address = address
mydata = BioData_OP("Big","Bee", 36,"CNGF")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.