- A+
首先Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型。以下是维基百科中对鸭子类型得论述:
在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定。这个概念的名字来源于由James Whitcomb Riley提出的鸭子测试,“鸭子测试”可以这样表述:
“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”
在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。
2.三目操作符
3、内建函数和lamda
需求:将一个字符串列表中所有满足包含“result"字段的字符串筛选出来。
4、iterator和generator
generator返回不用return,而用yield。
5、bind
bind应用的场景:你写一个好多参数的函数,先bind一个参数,变成函数A,然后换种方式bind,又变成了函数B。
介绍一个库是functools,这里只介绍跟bind相似的partial方法。
6、修饰器
1)decorator
包含内置方法:
1. python有三个内置函数,__set__、__get__、__delete__;
2. 只定义__get__方法,非数据描述器(non-data descriptor);
3. 定义了__delete__ 或者 __set__ 方法的叫做数据描述器(data descriptor);
1. python自动属性 (python自动生成的属性,比如__doc__等)
2. 在类(及其祖先类)的__dict__中查找data descriptor,如果存在,返回data descriptor中__get__方法调用的结果
3. 在对象的__dict__中查找
4. 在类(及其祖先类)的__dict__中查找non-data descriptor,存在则返回对应__get__调用的结果
5. 在类(及其祖先类)的__dict__中查找普通属性
这样,在原来的属性查找顺序上,我们加上了non-data descriptor和data descriptor,分别插在2、4的位置上。