`

python继承

 
阅读更多
子类不会默认调用父类的构造函数,但如果子类没有自己的构造函数则会默认调用父类的
class P(object):
    def __init__(self):
        print 'P inited'
    def __del__(self):
        print 'P deleted'
    def fun(self):
        print 'P fun'
        
class C(P):
    def __init__(self):
        print 'C inited'
    def __del__(self):
        print 'C deleted'
    def fun(self):
        super(C,self).fun()
        print 'C fun'

class C2(P):
    pass

>>> c = C()
C inited
>>> c.fun()
P fun
C fun
>>> delete c
SyntaxError: invalid syntax
>>> del c
C deleted
>>> c2 = C2()
P inited


多重继承,先继承的优先调用
class P1:
    def __init__(self):
        print 'P1 init()'
    def foo(self):
        print 'P1 foo()'

class P2:
    def __init__(self):
        print 'P2 init()'
    def foo(self):
        print 'P2 foo()'
    def bar(self):
        print 'P2 bar()'

class C1(P1,P2):
    pass
class C2(P2,P1):
    def bar(self):
        print 'C2 bar()'

class GC(C1,C2):
    pass


>>> c1 = C1()
P1 init()
>>> c2 = C2()
P2 init()
>>> c1.foo()
P1 foo()
>>> c1.bar()
P2 bar()
>>> c2.foo()
P2 foo()//先继承了P2,所以优先调用P2的foo
>>> c2.bar()
C2 bar()
>>> gc = GC()
P1 init()
>>> gc.foo
<bound method GC.foo of <__main__.GC instance at 0x0000000002F55588>>
>>> gc.foo()
P1 foo()//先继承了C1,C1再向上找到P1的foo
>>> gc.bar()
P2 bar()
>>> 
分享到:
评论

相关推荐

    第十二章Python继承和多态习题与答案--中文

    Python 继承基础 **继承** 是面向对象编程的一个核心概念,它允许创建一个新类(称为 **子类** 或 **派生类**),该类继承了现有类(称为 **父类**、**基类** 或 **超类**)的所有属性和方法。 **示例 12.1** ```...

    python继承和抽象类的实现方法

    在Python编程语言中,继承和抽象类是面向对象编程中的核心概念。继承允许我们创建一个新类(子类),该类具有另一个类(父类)的属性和方法,从而实现代码复用和类的分层结构。抽象类则是一种不能直接实例化的类,它...

    python继承语法.docx

    Python 继承是一种面向对象编程的关键特性,它允许创建新的类(子类)从已有的类(父类或超类)中获取属性和方法。这种设计模式有助于代码重用、组织和扩展,使得程序更加模块化和易于维护。在Python中实现继承的...

    Python继承和多态.docx

    Python继承和多态

    python全套课程继承与多态

    "python继承与多态"这个课程应该提供了实践案例和练习,帮助你更好地理解和应用这些知识。在实践中,你会遇到如何设计类层次结构、何时使用继承、如何利用多态优化代码等问题,这些都是提升编程技能的关键步骤。通过...

    从零开始重新学习 Python 3:代码复用:学会 Python 继承和多态,事半功倍!

    不想每次都写重复代码?Python 继承和多态,让你轻松实现代码复用!

    Python 继承,重写,super()调用父类方法操作示例

    本文实例讲述了Python 继承,重写,super()调用父类方法操作。分享给大家供大家参考,具体如下: demo.py(继承,重写,super): # 父类 class Dog: def bark(self): print(汪汪叫) # 子类 继承 class ...

    Python学习资料之继承

    在Python编程语言中,继承是面向对象编程的一个关键特性,它允许我们创建一个新类(子类),这个新类能够从已存在的类(父类)中继承属性和方法。这样的设计模式有助于代码重用,提高模块化,并使程序结构更加清晰。...

    python继承类重写方法.docx

    Python中的继承和方法重写是面向对象编程的重要组成部分,它提供了代码复用和扩展的灵活性。在Python中,一个类可以派生自另一个类,从而继承其属性和方法。这样,子类就可以在保留父类功能的基础上添加或修改功能。...

    彻底搞懂python继承

    Python继承 继承是用来实现代码复用和设计复用的机制,是面向对象程序设计的重要特性之一。设计一个新类时,如果可以继承一个已有的设计良好的类然后进行二次开发,无疑会大幅度减少开发工作量。 在继承关系中,已有...

    python 继承的应用 示例

    继承的应用 - 抽象类 - 抽象方法 - 方法重写 - 多态

    python继承类重写方法(1).docx

    Python中的继承和方法重写是面向对象编程的重要组成部分,它提供了代码复用和扩展的灵活性。在Python中,一个类可以派生自另一个类,从而继承其属性和方法。这使得我们可以在不改变原有类的基础上扩展功能或定制行为...

    Python语言基础:类的继承.pptx

    Python 作为一门强大的动态类型语言,支持丰富的 OOP 特性,包括类的继承。类的继承允许我们创建一个新的类,这个新类可以保留原有类的属性和方法,同时可以添加新的功能或修改已有功能,从而实现代码的复用和模块化...

    ODOO12图书项目继承Python方法.mp4

    Python 方法中编写的业务逻辑也可以被继承。Odoo 借用了 Python 已有的父类行为的对象继承机制。 作为一个实际的例子,我们将继承图书 ISBN 验证逻辑。在图书应用中仅能验证13位的 ISBN,但老一些的图书可能只有10...

    python 多继承

    python 继承 多继承 视频课。。。。。。。。。。。。。。。

    python进阶1.7继承,重写,多态等.zip

    python基础进阶1.7继承,重写,多态等相关视频。至此,我认为了解这些python基础,便可以进行相关项目实践了。在实践中学习更多的python函数用法。关注微信公众号:深度学习社区DLC;博客:...

    Python语言基础:类的多重继承.pptx

    Python中的多重继承是一种面向对象编程特性,允许一个子类继承多个父类的属性和方法,从而实现更加灵活的代码重用。在这个特定的例子中,我们通过创建不同的动物类来演示了多重继承的概念。 首先,我们定义了一个...

    python继承实例.html

    通过继承的简单例子深入了解继承,所有类都继承object,isinstance()用来检查一个对象是否是有一个类的实例,issubclass()检查一个类是否是另一个类的子类

    python-继承语法.docx

    Python 继承是面向对象编程(OOP)的关键特性,它允许子类(ChildClass)继承父类(ParentClass)的属性和方法,从而实现代码的...这就是Python继承语法的魅力所在,也是Python成为OOP开发中广泛应用的语言的原因之一。

    深入浅析python继承问题

    ### 深入浅析Python继承问题 #### 引言 在面向对象编程语言中,继承是一种非常重要的机制,它允许我们定义一个类(子类)来继承另一个类(父类)的属性和方法,从而实现代码重用,提高开发效率。Python作为一种...

Global site tag (gtag.js) - Google Analytics