优美优于丑陋。明了优于隐晦。
简单优于复杂。复杂优于凌乱。
扁平优于嵌套。稀疏优于稠密。
可读性很重要。
Python是多范式编程语言。完全支持面向对象编程和结构化编程,而它的很多特征支持函数式编程和面向切面编程(包括元编程和元对象(魔术方法))。Python是完全面向对象的语言,函数、模块、数值、字符串都是对象;并且完全支持继承、重载、派生、多重继承,有益于增强源代码的复用性。Python支持重载运算符,因此Python也支持泛型设计。
Python对遵循Lisp传统的函数式编程提供了有限的支持,它提供了 filter、map、reduce函数;列表推导、字典、集合和生成器表达式。标准库中有两个模块(functools和itertools)实现了从Haskell和Standard ML取来的函数式工具。
Python的设计哲学是“优雅”、“明确”、“简单”。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”,也因此它和拥有明显个人风格的其他语言很不一样。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。这些准则被称为“Python之禅”。
Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。
再加上因为Python属于动态类型语言,动态类型语言是在运行期间检查数据的类型,不得不保持描述变量值的实际类型标记,程序在每次操作变量时,需要执行数据依赖分支,而静态类型语言相对于动态类型语言,在声明变量时已经指定了数据类型和表示方法,根据这一原理导致Python相对于C、Visual Basic等静态类型语言来说运行速度较慢。不过,根据二八定律,大多数编程对速度要求不高。
在某些对运行速度要求很高的情况,Python设计师可以使用JIT技术如PyPy,或者使用C/C++语言编写扩展模块。
Python本身被设计为可扩展的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩展模块。
Python编译器本身也可以被集成到其它需要脚本语言的编程内。因此,有很多人把Python作为一种“胶水语言”使用。使用Python将其他语言编写的编程进行集成和封装。