Python面向对象中的继承.多态和封装 一.面向对象的三大特性 封装:把很多数据封装到⼀个对象中,把固定功能的代码封装到⼀个代码块, 函数,对象, 打包成模块. 这都属于封装思想. 继承:⼦类可以⾃动拥有⽗类中除了私有属性外的其他所有内容. 说⽩了, ⼉⼦可以随便⽤爹的东⻄. 多态: 同⼀个对象, 多种形态.在Python中处处是多态,因为在Python中一个变量可以是多种形态. 二.封装 封装,顾名思义,就是将某些东西给封装起来,以后想要使用的时候再去调用. 所以,在使用面向对象的封装特性时…
析构: def __del__(self): print("del..run...") r1 = Role("xx") del r1 结果打印del..run... 析构函数在实例被销毁的时候执行__del__ 做程序的收尾工作名字r1被删除后,垃圾回收机制会将对象清空就执行了__del__函数 继承1 对父类的功能进行扩展而无需重写 * 多级继承,一般三层父--子--孙--..* 多重继承 class Teacher(SchoolMember,School)用的不…
继承的优点: 1.建造系统中的类,避免重复操作. 2.新类经常是基于已经存在的类,这样就可以提升代码的复用程度. 继承的特点: 1.在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用.有别于C# 2.在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量.区别于在类中调用普通函数时并不需要带上self参数 3.Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找.(先在本类中查找调用的…
Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三要素之一,封装.今天我们来学习一下继承(Inheritance) 人类和猫类都继承自动物类. 个体继承自父类,继承了父类的一部分特征,但也可以有自己的个性. 再面向对象的世界中,从父类继承,就可以直接拥有父类的属性方法,这样可以减少代码,多复用.子类可以定义自己的属性和方法. 2>.看一个不用继承的例子…
1.1继承的基本概念 使用一个子类,继承另一个父类,那么子类可以自动拥有父类中的所有属性和方法,这个过程叫做继承. >>>继承的两方,发生在两个类之间. 实现继承的三种方式: 扩展Object的prototype实现继承.使用call和apply和bind实现继承.使用原型实现继承. 1.2扩展Object的prototype实现继承 扩展Object的prototype实现继承的原理,就是通过循环,将父类对象的所有属性和方法,全部赋给子类对象.关键点在于for-in循环,即使不扩展ob…
Python面向对象中的“私有化” Python并不直接支持私有方式,而要靠程序员自己把握在外部进行特性修改的时机. 为了让方法或者特性变为私有(从外部无法访问),只要在它的名字前面加上双下划线即可. 由双下划线 __ 开始的属性在运行时被“混淆”,所以直接访问是不允许的. 实际上,在 Python 带有双下划线的属性或方法并非正真意义上的私有,它们仍然可以被访问. 在类的内部定义中,所有以双下划线开始的名字都被“翻译”成前面加上单下划线和类名的形式. 示例: >>> class Tes…
封装 可以简单的理解为隐藏一切可以隐藏的实现细节,只向外界提供简单的编程接口.我们在类中定义的方法其实就是把数据和数据的操作封装起来了,在我们创建了对象之后,只需要给对象发送一个消息(调用方法)就可以执行方法中的代码,也就是说我们只需要知道方法的名字和传入的参数(方法的外部视图),而不需要知道方法内部的实现细节(方法的内部视图). 练习:定义一个类实现一个数字数种 import time class Clock: def __init__(self): # 获取当前系统时间 t = time.l…
Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. 缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物…
面向对象优点 1.通过封装明确了内外 2.通过继承+多态在语言层面支持了归一化设计 抽象/实现 抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于 绘程序结构,从而实现这种模型.抽象不仅包括这种模型的数据属性,还定义了这些数据的接口. 对某种抽象的实现就是对此数据及与之相关接口的现实化(realization).现实化这个过程对于客户 程序应当是透明而且无关的. 封装/接口 封装描述了对数据/信息进行隐藏的观念,它对数据属性提供接口和访问函数.通过任何客户端直接对…
https://www.cnblogs.com/liubing8/p/11321099.html 目录 Python面向对象04 /封装.多态.鸭子类型.类的约束.super 1. 封装 2. 多态 3. 鸭子类型 4. 类的约束 5. super的深度剖析 1. 封装 把一堆东西(代码,数据)放到一个地方(空间),并且可以使用,比如:函数,类 2. 多态 一个事物可以呈现多种形态 , 例如:水可以支持固态.液态.气态 Python默认支持多态(Java是强定义语言,Python是弱定义语言)…