python(进阶二)

多态

1. python有多态,但是不是一个严谨的多态,因为Python是一个动态语言,没有强制类型

封装

一个函数一个功能,一个类是多个相关函数的集合

继承

子类中相同的方法会放到父类中,减少代码重复性

mro 及多继承

mro类初始化顺序表,保持我们的类只初始化一次
super()从mro顺序表中找到自已的位置,从mro顺序表中调用下一个类

实例与类之间的调用关系

实例可以调用三种类型的方法(静态,类,实例),可以调用类的属性及自我的属性
类可以调用三种类型的方法(静态,类,实例),但是不能调用实例上的属性
python(进阶二)_第1张图片
1.png

property

1. 完成常量,常量是能得到到数据,但是不能修改数据,一般常量都是大写
2. 代码实现
    这个常量一般在init中创建一个私有的属性
    提供一个得到这个私有属性的方法,但是我们为了让常量更直观,在方法上加入装饰器@property
    调用就可以使用(类名.方法名)
python(进阶二)_第2张图片
2.png

魔法属性与方法

__dict__:查看属性
__class__:查看谁创建了我

__init__:初始化
__new__:创建时,一般单例
__call__:实例()调用

上下文管理器

只要实现了__init__ ,__enter__,__exit__这三个方法就可以说实现了上下文管理器
1.简化了代码
2.程序退出时自动关闭
3.操作时出现异常也会自动关闭

with myopen() as f:
    pass
myopen()这个调用__init__方法
as 后面的f由__enter__这个方法返回
程序执行完后退出我们会执行__exit__,一般用来关闭资源  

你可能感兴趣的:(python(进阶二))