gpt4 book ai didi

Python 类继承 : How to initialize a subclass with values not in the parent class

转载 作者:太空狗 更新时间:2023-10-30 00:40:45 25 4
gpt4 key购买 nike

我正在努力学习更多关于类和 OOP 的知识。

我怎样才能让我的 Person 类用 Entity 的所有值初始化,但也用 Entity 中可能不包含的值初始化> 类?

例如,PersonSpirit 都继承自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/

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