首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python:如何从超类创建一个子类?

Python:如何从超类创建一个子类?
EN

Stack Overflow用户
提问于 2009-10-22 22:26:23
回答 13查看 168K关注 0票数 90

在Python中,如何从超类创建一个子类?

EN

回答 13

Stack Overflow用户

发布于 2009-10-23 01:54:40

代码语言:javascript
复制
# Initialize using Parent
#
class MySubClass(MySuperClass):
    def __init__(self):
        MySuperClass.__init__(self)

或者,更好的是,使用Python的内置函数super() (请参阅Python 2/Python 3文档)可能是调用父函数进行初始化的一种稍好的方法:

代码语言:javascript
复制
# Better initialize using Parent (less redundant).
#
class MySubClassBetter(MySuperClass):
    def __init__(self):
        super(MySubClassBetter, self).__init__()

或者,和上面一样,除了使用super()的零参数形式,它只在类定义中工作:

代码语言:javascript
复制
class MySubClassBetter(MySuperClass):
    def __init__(self):
        super().__init__()
票数 95
EN

Stack Overflow用户

发布于 2009-10-22 22:39:06

一个英勇的小例子:

代码语言:javascript
复制
class SuperHero(object): #superclass, inherits from default object
    def getName(self):
        raise NotImplementedError #you want to override this on the child classes

class SuperMan(SuperHero): #subclass, inherits from SuperHero
    def getName(self):
        return "Clark Kent"

class SuperManII(SuperHero): #another subclass
    def getName(self):
       return "Clark Kent, Jr."

if __name__ == "__main__":
    sm = SuperMan()
    print sm.getName()
    sm2 = SuperManII()
    print sm2.getName()
票数 68
EN

Stack Overflow用户

发布于 2009-10-22 22:28:47

代码语言:javascript
复制
class MySubClass(MySuperClass):
    def __init__(self):
        MySuperClass.__init__(self)

        # <the rest of your custom initialization code goes here>

python文档中的section on inheritance对此进行了更详细的说明

票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1607612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档