zoukankan      html  css  js  c++  java
  • 重新梳理Python基础(11)

    1. python中的继承

    class Parent(object):
    
        def override(self):
            print "PARENT override()"
    
        def implicit(self):
            print "PARENT implicit()"
    
        def altered(self):
            print "PARENT altered()"
    
    class Child(Parent):
    
        def override(self):
            print "CHILD override()"
    
        def altered(self):
            print "CHILD, BEFORE PARENT altered()"
            super(Child, self).altered() #注意super的用法!!!!
            print "CHILD, AFTER PARENT altered()"
    
    dad = Parent()
    son = Child()
    
    dad.implicit()
    son.implicit()
    
    dad.override()
    son.override()
    
    dad.altered()
    son.altered()

    python可以多重继承,即一个class可以有多个父类。

    class Son(Dad, Mum):
        pass

    这时,当调用super(Son, self).***()的时候,会看Dad里有没有这个方法,如果有,就不调用Mum里的了,如果没有,才查看Mum里有没有,看下面的代码:

    class Parent(object):
    
        def override(self):
            print "PARENT override"
    
        def implicit(self):
            print "PARENT implicit"
    
        def altered(self):
            print "PARENT altered"
    
    class Mum(object):
        def altered1(self):
            print "MUM, altered."
    
    class Child(Mum, Parent):
    
        def override(self):
            print "CHILD override"
    
        def altered(self):
            print "CHILD, BEFORE PARENT altered()"
            super(Child, self).altered1()
            super(Child, self).altered()
    
            print "CHILD, AFTER PARENT altered()"
    
    dad = Parent()
    son = Child()
    
    dad.implicit()
    son.implicit()
    
    dad.override()
    son.override()
    
    dad.altered()
    son.altered()

    输出结果:

    E:\SkyDrive\python\the hard way to learn python>python ex44_4.py
    PARENT implicit
    PARENT implicit
    PARENT override
    CHILD override
    PARENT altered
    CHILD, BEFORE PARENT altered()
    MUM, altered.
    PARENT altered
    CHILD, AFTER PARENT altered()
  • 相关阅读:
    [转]国内源码下载类网站
    JS 异步处理机制的几种方式(转)
    NodeJS 服务器基本模板
    JS Ajax的error函数(转)
    CSS 文本溢出部分显示省略号
    .net网络编程之一:Socket编程
    在.NET使用JSON作为数据交换格式
    在web.config和app.config文件中增加自定义配置节点
    C#的解题思路(1):不重复随机数的产生问题
    用C#绘制实时曲线图
  • 原文地址:https://www.cnblogs.com/dollarzhaole/p/2977766.html
Copyright © 2011-2022 走看看