多态
1. python有多态,但是不是一个严谨的多态,因为Python是一个动态语言,没有强制类型
封装
一个函数一个功能,一个类是多个相关函数的集合
继承
子类中相同的方法会放到父类中,减少代码重复性
mro 及多继承
mro类初始化顺序表,保持我们的类只初始化一次
super()从mro顺序表中找到自已的位置,从mro顺序表中调用下一个类
实例与类之间的调用关系
实例可以调用三种类型的方法(静态,类,实例),可以调用类的属性及自我的属性
类可以调用三种类型的方法(静态,类,实例),但是不能调用实例上的属性
1.png
property
1. 完成常量,常量是能得到到数据,但是不能修改数据,一般常量都是大写
2. 代码实现
这个常量一般在init中创建一个私有的属性
提供一个得到这个私有属性的方法,但是我们为了让常量更直观,在方法上加入装饰器@property
调用就可以使用(类名.方法名)
2.png
魔法属性与方法
__dict__:查看属性
__class__:查看谁创建了我
__init__:初始化
__new__:创建时,一般单例
__call__:实例()调用
上下文管理器
只要实现了__init__ ,__enter__,__exit__这三个方法就可以说实现了上下文管理器
1.简化了代码
2.程序退出时自动关闭
3.操作时出现异常也会自动关闭
with myopen() as f:
pass
myopen()这个调用__init__方法
as 后面的f由__enter__这个方法返回
程序执行完后退出我们会执行__exit__,一般用来关闭资源
网友评论