Python语言基础
语言特性 动态强类型语言(不少人误以为是弱类型) 动态还是静态指的是编译期还是运行期确定类型 强类型指的是不会发生隐式型转换 优缺点 胶水语言,轮子多,应用广泛 语言灵活,生产力高 性能问题,代码维护问题,Python2/3兼容问题 鸭子类型 关注点在对象的行为,而不是类型(duck typing) 比如 file,StringIO,socket 对象都支持 read/write 方法(file like object) 再比如定义了 __iter__ 魔术方法的对象可以用 for 迭代 monkey patch 所谓的 monkey patch 就是运行时替换 比如 gevent 库需要修改内置的 socket from gevent import monkey; monkey.patch_socket() 自省(Introspection) 运行时判断一个对象的类型的能力 Python 一切皆对象,用 type,id,isinstance 获取对象类型信息 Inspect 模块提供了更多获取对象信息的函数 列表或字典推导式 比如 [i for i in range(10) if i % 2 == 0] 一种快速生成 list/dict/set 的方式。用来替代 map/filter 等 (i for i in range(10) if i % 2 == 0) 返回生成器