优点:
- 语法简单,易看懂,易学习,易上手。
- 开发环境搭建简单,很多 Linux 系统自带 Python 环境。
- 实现同功能代码少,编程效率高。
- 在运维方面,一定程度可以代替 `Shell` 脚本编写。
- 特殊功能类库丰富,避免重复造轮子。
- 使用领域广,站在自动化运维、大数据、人工智能等风口。
- 既开源又免费。
- 高级语言,编程无需关心内存分配、垃圾回收等操作系统底层问题。依靠自身解释器(虚拟机)对多平台操作系统的支持,语言编码的程序也具有跨平台移植性。
缺点:
- 文档不太友好,很多函数调用需要参考网络代码示例。
- 弱类型语言,IDE 提示不全,或提示不准确,模块函数调用全靠文档注释说明,coding 智能推荐不友好。
- 版本兼容问题,不能够做到向后兼容,同一个小版本迭代过程中有些模块会被删除。这也造成大量第三类库的兼容问题。
- 导入方式随意性太大。import 可以导入整个模块,也可以导入模块中的特定函数,这种导入方式使得查找导入的模块列表不直观。为了解决模块重名问题,Python 支持导入模块 `as` 重命名,这样容易误导代码查阅。
- 解释性语言,运行内存占用高,有些代码错误(如传入参数类型错误)只能在运行时发现。
- 相比编译型语言,执行效率不高。为了提高执行效率,热点代码(核心算法不公开代码),采用 C/C++ 编译为系统动态连接库 dll/so,Python 直接加载并调用系统函数库。这种方式造成很多的调用函数内部代码逻辑不可查阅。
- 采用代码缩进方式控制程序结构,有时深层嵌套结构层级错误问题不易发现。
- 类库丰富繁多,找到合适而优秀的目标类库需要筛选成本,广泛精通有点力不可及,一般停留在会用层次。
总结: