一、python中方法没有重载
方法的参数没有类型就不用搞重载了,通过各名字区分。
如果我们在类体中定义了多个重名的方法,只有最后一个方法有效。
二、方法的动态性:
给类加新方法,给对象做新方法都能做到。
三、私有属性和私有方法(实现封装)
1、通常我们约定,两个小划线开头的属性也是私有的(private),其他为公共的(public)。
2、类内部可以访问私有属性(方法)
3、类外部不能直接访问私有属性(方法)
4、类外部可以通过“_类名_私有属性(方法)名”访问私有属性(方法)
self.__age=age 私有属性
print(e._Employee__age)就可以访问私有属性
四、@property装饰器
将一个方法的调用方式编程“属性调用”
五、面向对象三大特征介绍
封装:隐藏对象的属性和实现细节,只对外提供必要的方法。“私有属性、私有方法”的方式,实现封装。
继承:继承可以让子类具有父类的特性,提高了代码的重用性。可以增加新功能或者改进已有的算法。
多态:是指同一个方法调用对象不同会产生不同的行为
六、继承(支持多重继承)
这个是代码复用的重要手段
已有的类我们称为“父类或者基类”
新的类,我们称为“子类或者派生类”
语法:class 子类名(父类1[,父类2,…):
类体
七、类成员的继承和重写
1、成员继承:子类继承了父类构造方法之外的所有成员
2、方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类的方法,也就称为重写
八、查看类的继承层次结构
通过类的方法mro()或者类的苏醒_mro_可以输出这个类的继承结构。
九、从写_str_()方法 十、多重继承
一个子类可以多个“直接父类”,坏处:会被“类的整体层次”搞得异常复杂,尽量避免使用。
十、mro()
如果父类中有相同名字的方法,在子类没有指定父类名时,解释器将“从左向右”按顺序搜索。
class(B,A)
十一、super()
获得父类的定义
在子类中,如果想要获得父类的方法时,我们可以通过super()来做。
super()代表父类的定义,不是父类的对象。
十二、多态
指同一个方法调用,由于对象不同可能产生不同的行为
十三、特殊方法和运算符重载
python的运算符实际上是通过对象的特殊方法实现的。
十四、组合
is-a”关系,我们可以使用“继承”。从而实现子类拥有的父类的方法和属性。“is-a”
关系指的是类似这样的关系:狗是动物,dog is animal。狗类就应该继承动物类。
“has-a”关系,我们可以使用“组合”,也能实现一个类拥有另一个类的方法和属性。”
has-a”关系指的是这样的关系:手机拥有 CPU。 MobilePhone has a CPU。
十五、设计模式_工厂模式实现
设计模式是面向对象语言特有的内容,是我们在面临某一类问题时候固定的做法,设计
模式有很多种,比较流行的是:GOF(Goup Of Four)23 种设计模式。当然,我们没有
必要全部学习,学习几个常用的即可。
对于初学者,我们学习两个最常用的模式:工厂模式和单例模式。
工厂模式实现了创建者和调用者的分离,使用专门的工厂类将选择实现类、创建对象进
行统一的管理和控制。
十六、设计模式_单例模式实现
单例模式(Singleton Pattern)的核心作用是确保一个类只有一个实例,并且提供一
个访问该实例的全局访问点。
单例模式只生成一个实例对象,减少了对系统资源的开销。当一个对象的产生需要比较
多的资源,如读取配置文件、产生其他依赖对象时,可以产生一个“单例对象”,然后永久
驻留内存中,从而极大的降低开销。