一、Python
语言特性
Python
是静态还是动态类型?是强类型还是弱类型?
1.动态强类型语言(不少人误以为是弱类型)
2.动态还是静态指的是编译期还是运行期确定类型
3.强类型指的是不会发生隐式类型转换
二、Python
作为后端语言优缺点
为会么要仍Python
?
1.胶水语言,轮子多,应用广泛
2.语言灵活,生产力高
3.性能问题、代码维护问题、python
2/3兼容问题
三、什么是鸭子类型
”当你看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。"
1.关注点在对象的行为,而不是类型(duck typing
)
2.比如 file
,StringIO
,socket
对象都支持read
/write
方法(file like object
)
3.再比如定义了__iter__
魔术方法的对象可以用for
迭代
代码示例:
class Duck:
def quack(self):
print("gua gua")
class Person:
def quack(self):
print("我是人类,但我也会 gua gua gua")
def in_the_forest(duck):
duck.quack()
def game():
donald = Duck()
john = Person()
in_the_forest(donald)
in_the_forest