作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在努力学习更多关于类和 OOP 的知识。
我怎样才能让我的 Person
类用 Entity
的所有值初始化,但也用 Entity
中可能不包含的值初始化> 类?
例如,Person
和Spirit
都继承自Entity
。但是,只有 Person
才有 gender
。我怎样才能让 Person
也用 gender
初始化?
在那之后,我是否仍然能够创建 Person
的实例并按照我在下面所做的相同方式调用 describe()
?
class Entity(object):
def __init__(self, state, name, age):
self.state = state
self.name = name
self.age = age
class Person(Entity):
def describe(self):
print "Identification: %s, %s, %s." % (self.state, self.name, self.age)
class Spirit(Entity):
pass # for now
steve = Person("human", "Steve", "23" # can I then list gender here?)
steve.describe()
最佳答案
在子类上创建自定义初始化器,然后通过super
调用父类的初始化器:
class Person(Entity):
def __init__(self, state, name, age, gender):
self.gender = gender
super(Person, self).__init__(state, name, age)
关于Python 类继承 : How to initialize a subclass with values not in the parent class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23452230/
我是一名优秀的程序员,十分优秀!