1. 什么是鸭子类型?
不要检查它是不是鸭子:检查它的叫声像不像鸭子,走起路来像不像鸭子。如果走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子。
鸭子类型是编程语言中动态类型语言中的一种设计风格,一个对象的特征不是由父类决定,而是通过对象的方法决定的。
2. 函数装饰器
装饰器是可调用的对象,其参数时另一个函数(被装饰的函数);函数装饰器用于在源码中“标记”函数,以某种方式增强函数行为。要掌握装饰器,必须理解闭包。
3. 猴子补丁
在运行时修改类或模块,而不改动源码。
4. 协程
微线程,调用子程序,子程序又可以调用其他子程序。协程可以把控制器让步给中心调度程序,从而激活其他的协程。yield视作控制流程的方式,从句法上看与生成器类似,yield通常出现在表达式的右边,调用方可以通过send给协程发送数据。
协程的特点:
- 协程是在单线程里实现任务的切换的。
- 利用同步的方式去实现异步。
- 不再需要锁,提高了并发性能。
5. __init__与__new__
__init__()方法是一种特殊的方法,被称为类的初始化方法,当创建了这个类的实例时就会调用该方法。
__new__是类的真正的构造方法,它创造对象,如果创造的是本类的对象,则__new__将构造的对象传给__init__,__init__对对象初始化。
6. 模块和包
每一个Python代码文件都是一个模块,并可以引用其他的模块中的类、方法等。
一个包含一个或多个.py文件的文件夹是一个包。一个包可以包含模块和子文件夹。注意python包需要有一个__init__.py否则无法引用