先说一个不正经的思路:Python的优势在于培训市场还没有饱和,所以漫天的广告
言归正传,先说点不好听的缺点:
慢
慢节奏的生活是很多人羡慕的,但是运行速度慢的程序可不是工程师想要的。Python慢到有点发指的地步,比V8上的JS还慢不少. (研究一下描述符,你会发现python调用对象方法的开销好大!) 但是python创始人也说了, 一般程序的瓶颈在于20%的代码, 所以你可以把那20%的代码用C重写(反正python是胶水语言,用C重写部分代码也没什么大问题)
动态类型
动态类型属于写的时候爽翻天,一直写一直爽,但是到了出bug或者重构的时候就傻眼了。
但是,如果大部分工程师有比较好的写unit test的习惯的话,还是可以通过unit test起到保护作用并且帮助代码理解。
再来说说优点:
一切都是对象
很多动态语言都有类似功能,任何东西都可以传来传去。class可以,函数也可以。
运算符重载
不少其他语言像c#也提供这种运算重载。重载的好处就在于很多复杂的运算可以像平常普通int运算一样方便。比如矩阵的运算,完全可以和课本里面学到的运算一样没有任何违和感,降低了学习难度。
易上手
对于初学者而言,Python是一个很好的入门语言。Python也已经作为很多院校的教学编程语言。这其实也主要得利于Python可以应用在很多场景,不管是爬虫还是后端服务开发,还是数据分析或者现在火爆的机器学习人工智能。