Python--面向对象的程序设计之继承实现的原理(继承顺序)、封装、property

抽象类补充:

import abc
class Parent(metaclass= abc.ABCMeta):
    x=1
    @abc.abstractclassmethod
    def foo(self):
        pass

    @abc.abstractclassmethod
    def bar(self):
        pass

class Child(Parent ):
    def foo(self):
        pass

    def bar(self):
        pass

c=Child()
print(c.x)
运行结果:
1

注意1:父类的变量可以遗传给子类

注意2:抽象类:本身不能被实例化,也不应该被实例化,它的作用就是定义标准,并不用具体实现。

继承实现的原理(继承顺序)

1 继承顺序

class A(object):
    def test(self):
        print(‘from A‘)

class B(A):
    def test(self):
        print(‘from B‘)

class C(A):
    def test(self):
        print(‘from C‘)

class D(B):
    def test(self):
        print(‘from D‘)

class E(C):
    def test(self):
        print(‘from E‘)

class F(D,E):
    # def test(self):
    #     print(‘from F‘)
    pass
f1=F()
f1.test()
print(F.__mro__) #只有新式才有这个属性可以查看线性列表,经典类没有这个属性

#新式类继承顺序:F->D->B->E->C->A
#经典类继承顺序:F->D->B->A->E->C
#python3中统一都是新式类
#pyhon2中才分新式类与经典类

继承顺序

子类调用父类的方法:

super()只能在新式类用到

报错:

封装:

封装数据

封装功能

进一步优化:

定制自己的属性:

时间: 07-02

Python--面向对象的程序设计之继承实现的原理(继承顺序)、封装、property的相关文章

day32--面向对象的程序设计之继承实现的原理(继承顺序)、封装、property

Python之路,Day19 = 面向对象的程序设计之继承实现的原理(继承顺序).封装.property 以下类容参考自:http://www.cnblogs.com/metianzing/p/7121947.html 抽象类补充: 1 import abc 2 class Parent(metaclass= abc.ABCMeta): 3 x=1 4 @abc.abstractclassmethod 5 def foo(self): 6 pass 7 8 @abc.abstractclassm

python 面向对象的程序设计

一:什么是编程范式? 编程是程序员用特定的语法 + 数据结构 + 算法组成的代码来告诉计算机如何执行任务的过程. 如果把编程的过程比喻为练习武功,那么编程范式指的就是武林中的各种流派,而在编程的世界里最常见的两大流派便是:面向过程与面向对象. "功夫的流派没有高低之分,只有习武的人才有高低之分",在编程世界里更是这样,面向过程与面向对象在不同的场景下都各有优劣,谁好谁坏不能一概而论. 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有

python之面向对象(继承的实现原理及封装)

一.继承的实现原理 继承的顺序 class A(object): def test(self): print('from A') class B(A): def test(self): print('from B') class C(A): def test(self): print('from C') class D(B): def test(self): print('from D') class E(C): def test(self): print('from E') class F(D

python面向对象三大特性之继承、多态

继承 什么是继承          所谓继承指提供了同一类对象共性的处理方法,子类继承父类共性的东西. 这样有利于代码的复用性,即子类拥有父类的方法.通过继承创建的新类称为"子类"或"派生类",被继承的类称为"基类"."父类"或"超类". 继承可以想象成什么是什么的关系 python中类的继承分为:单继承和多继承 class Parent1: # 父类1 pass class Parent2: #父类2 p

python面向对象的三大特征--继承

#什么时候用继承 #1.当类之间有显著不同,并且较小的类是较大的类所需的组件时,用组合比较好 #2.当类之间有很多相同的功能,提供这些共同的功能做成基类,用继承比较好 class Dad: "这个是爸爸类" money=10 def __init__(self,name): print("爸爸") self.name=name def hit_son(self): print("%s 正在打儿子" %self.name) class Son(Da

Python面向对象学习小结之三 继承

继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass pass class SubClass2(ParentClass1,Pare

Python学习:15.Python面向对象(二、继承的各种情况)

一.什么是继承 继承是一种创建类的方法,在python中,一个类可以继承来自一个或多个父.原始类称为基类或超类. #创建父类 class Parent1: pass class Parent2: pass # 继承父类,单继承 class Obj1(Parent1): pass #继承父类,多继承 class Obj2(Parent1,Parent2): pass 二.什么时候使用继承 在已经创建的几个类中,这几哥类中的方法和变量有相同的,这种时候我们就可以使用类的继承,将其它类中已有的方法和变

python 面向对象基础梳理三 继承、派生与组合

什么是继承 继承是一种创建新类的方式,是一种什么是什么的关系,继承的功能之一就是解决代码重用的问题,继承是一种创建新类的方式,在python 中,新建的一个类可以继承一个或者多个父类,父类由可以成为基类或者超类,新建的类称为派生类或子类. 继承的分类 继承可以分为 单继承和多继承,Python 2 和 python 3 中有经典类和新式类的区分,这里描述的是python3 示例演示 # 输入 class Pare1class: pass class Pare2class: pass class

Python面向对象(四)—继承、多态

继承 语法 1.代码: class 子类(父类): def __init__(self,参数列表): super().__init__(参数列表) self.自身实例变量 = 参数 设计角度: 先有子类,再有父类. 抽象化的过程:子(具体,小概念) -> 父(抽象,大概念) 编码角度: 先写父类,再写子类. 2.说明: -- 子类拥有父类的所有成员. -- 子类如果没有构造函数,将自动执行父类的,但如果有构造函数将覆盖父类的.此时必须通过super()函数调用父类的构造函数,以确保父类属性被正常