Python名字来源于《蒙提派森》还是蟒蛇
深入考证Python编程语言名字的真实来源:究竟是源于英国著名幽默喜剧剧团《蒙提·派森》(Monty Python),还是生物学上的蟒蛇?本文从1989年吉多的创作者手记、官方FAQ记载、代码库彩蛋到双蛇Logo的演化过程,系统厘清两者的渊源与误区。
一、从 1989 年圣诞夜说起:吉多当时的真实动机
很多程序员第一次接触 Python 时,看到官方图标上两条相互缠绕的蛇形图案,或是阅读 O'Reilly 动物书封面上一条盘踞在枝头的绿树蟒,都会理所当然地认为这门语言因“蟒蛇”而得名。但只要翻开 Python 官方文献或早期邮件列表,就会发现事实并非如此。
1989 年 12 月,荷兰数学和计算机科学研究学会(CWI,Centrum Wiskunde & Informatica)因为圣诞假期即将闭馆一周。程序员吉多·范罗苏姆(Guido van Rossum)为了排遣家中的无聊时光,同时希望实践一种比当时 ABC 语言更通用、能直接调用操作系统系统调用的解释型脚本语言,便在自己的微型计算机上动手搭建语言解释器的最初核心。
在为这个还在雏形阶段的业余项目创建工程目录时,吉多面临给语言命名的任务。在一次后来的自述中,吉多详细写道:
“当时我处于一种略显玩世不恭的轻松心情(slightly irreverent mood)。我手头正好有 BBC 著名喜剧《蒙提·派森的飞行马戏团》(Monty Python's Flying Circus)已出版的剧本。我需要一个简短、独特且带有一点神秘感的名字,于是我决定将其命名为 Python。”
在计算机发展史上,许多编程语言的名字要么是冗长的技术缩写(如 BASIC、FORTRAN),要么是严谨的先驱人名(如 Pascal、Ada)。吉多并不希望自己的新项目被一个干瘪而刻板的学术简称所束缚,因而选择了一个充满英式荒诞幽默色彩的名字。
二、四步考证:如何亲自核对官方文献与原始证据
对于技术开发者而言,判断一个说法的真伪最有效的方法是查证原始出处。读者无需听信二手传闻,可以通过以下四个具体步骤在官方公开资源中核验这一历史事实:
-
查阅官方通用常见问题解答(General FAQ):
访问 Python 官网文档的 FAQ 页面(docs.python.org/3/faq/general.html),在“Why is it called Python?”(为什么它叫 Python?)小节中,官方赫然写着:
官方在随后的说明中还特别补充:“制作与爬行动物相关的关联并不是禁忌,但更被倡导的是保持对英国荒诞喜剧的品味。”Q: Why is it called Python? A: When he began implementing Python, Guido van Rossum was also reading the published scripts from "Monty Python's Flying Circus", a BBC comedy series from the 1970s. Van Rossum thought he needed a name that was short, unique, and slightly mysterious, so he decided to call the language Python. -
检索 Python 诞生初期的 comp.lang.python Usenet 新闻组:
在 1991 年 2 月吉多首次向全互联网公开发布 Python 0.9.0 源代码的邮件正文中,吉多便明确提及项目灵感来自于 ABC 语言,而名字则是向他钟爱的喜剧艺术团体致敬。 -
查阅 PEP 文档中的设计精神记录:
在规范 Python 发展历史与设计哲学的 PEP(Python Enhancement Proposals)索引中,官方明确鼓励维护一种不自满、轻盈而富有自嘲幽默的黑客文化,这种气质直接继承自《蒙提·派森》。 -
排查动物分类学文献与历史手稿比对:
吉多在早期任何设计手记和访谈中,从未提到过蟒蛇的骨骼、鳞片、吞咽特性或捕食习惯对语言运行机制产生过任何启发。语言的设计核心是 ABC 语言的缩进语法、Modula-3 的模块机制以及 C 语言的系统接口。
三、深植于代码与生态中的《蒙提·派森》文化印记
如果说名字的来源只是一个一次性的巧合,那么在随后的三十多年里,《蒙提·派森》的喜剧梗则早已深深地融入了 Python 的标准库、官方文档以及日常开发习惯中。只要留心观察,日常编码中随处可见剧团的影子:
1. 示例变量不是 foo 和 bar,而是 spam、eggs 与 ham
在 C、C++ 或 Java 等语言的技术文档中,最常见的无意义占位符变量是 foo、bar 和 baz。然而,Python 官方文档和 PEP 规范有一条不成文的传统:在演示代码时优先使用 spam(午餐肉)和 eggs(鸡蛋)。例如在官方标准库教程中随处可见如下示例:
# Python 官方风格的标准示例代码
def make_breakfast(spam, eggs):
menu = {
'spam': spam,
'eggs': eggs,
'baked_beans': False
}
return menu
order = make_breakfast(spam=3, eggs=2)
print("Today's breakfast:", order)
这个典故出自《蒙提·派森》1970 年播出的一出著名讽刺小品:一对夫妻到餐馆吃早餐,发现菜单上每一道菜都强制含有过量的“Spam”(午餐肉),例如“鸡蛋加午餐肉”、“午餐肉加午餐肉和午餐肉”,背景里的一群维京人还在不断高歌重复“Spam! Spam! Lovely Spam!”。Python 官方藉由此梗借题发挥,甚至互联网世界将“垃圾邮件 / 滥发信息”统称为“Spam”,其语源同样来自这个剧目。
2. 官方自带 IDE 命名为 IDLE
在每一份 Python 官方安装包中,都附带了一个极其轻量的图形开发环境。这个工具被命名为 IDLE。官方公开说明其全称为 Integrated Development and Learning Environment(集成开发与学习环境),但吉多在多次访谈中承认,这个名字的核心灵感是为了致敬《蒙提·派森》的核心成员之一——英国著名喜剧演员兼编剧艾瑞克·艾德尔(Eric Idle)。
3. PyPI 官方包管理器早期代号:Cheese Shop
今天全球 Python 开发者每日拉取依赖的官方仓库称为 PyPI(Python Package Index)。但在 PyPI 发展的早期阶段(2000 年代初),它的官方正式域名与服务代号就叫做 The Cheese Shop(奶酪店)。这一命名源自剧团著名的荒诞短剧:一位挑剔的顾客走进一家标榜商品齐全的“奶酪专门店”,报出了多达几十种奶酪的名字,店员却面带微笑地逐一表示“店里刚好没有”,整个小品充满了无厘头的荒谬感。早期社区用其自嘲包索引刚起步、库资源尚不完善的状态。
四、为什么“巨蟒”能反客为主成为官方视觉标志?
既然历史起源如此明确,为何在今天的公众认知和商业世界里,蟒蛇的形象反而占据了绝对主导地位?这一现象主要由三个维度的现实原因共同促成:
| 演进维度 | 历史具体事实 | 对大众心智的影响 |
|---|---|---|
| 词义与跨文化认知 | 英语中 python 作为普通名词,在牛津词典中的首选释义即为生物学上的大型无毒蟒蛇(Pythonidae)。而在英语母语区之外,多数学习者并不熟悉英国 70 年代的 BBC 喜剧。 |
非英语国家和初学者在查阅词典时,第一反应就是“蟒蛇”,天然形成了直观物象联想。 |
| O'Reilly 出版物视觉包装 | 1996 年,著名计算机技术图书出版商 O'Reilly 准备出版马克·卢茨(Mark Lutz)编写的经典著作《Programming Python》。依照该出版社“以动物木刻版画作封面”的传统,封面设计师毫无悬念地挑选了一条真实的绿树蟒。 | 这本权威技术专著迅速风靡全球,把“蟒蛇封面”直接刻入了整整两代程序员的认知图景中。 |
| 官方 Logo 的视觉固定 | 早期 Python 社区没有固定的图形标识。到了 2005 年左右,吉多的亲弟弟——知名字体与平面设计师贾斯特·范罗苏姆(Just van Rossum)为 Python 社区专门设计了现代标志:一条蓝色小蛇和一条黄色小蛇咬合在一起构成的首尾相嵌图案。 | 该设计获得了 Python 软件基金会(PSF)的官方认可并注册为商标,正式让“蛇”的视觉形态成为了全球技术官方图腾。 |
由此可见,从纯文字名称到具象标志,发生了一次巧妙的“视觉移花接木”:名称借用喜剧剧名,图形顺应单词直译。吉多与 Python 软件基金会对此持极其包容的态度——他们既不排斥大家把双蛇作为吉祥物,也在官方所有重要场合持续保留着对喜剧先驱的真诚敬意。
五、写代码与阅读文档时的实用建议
理解了 Python 名字背后的双重背景后,开发者在阅读开源代码、查阅官方标准库手册以及编写技术文档时,应当注意以下几项规范与经验:
-
阅读示例代码时保持预期:当在标准库单元测试(如
test_spam.py)或官方教程中看到诸如class Spam:、def knights_who_say_ni():时,不需要花费时间去寻找底层业务含义,这是官方故意留下的幽默典故,代表标准占位符。 -
在技术写作中灵活运用文化梗:在面向 Python 社区撰写技术教程、编写测试用例或录制演示视频时,用
spam/eggs替代冰冷的foo/bar,会让你的内容更加符合 Python 原汁原味的社区规范(Pythonic Style)。 - 分清事实与视觉符号的语境:在严肃的技术文档编写或技术面试交流中,如果被问及 Python 的命名渊源,应准确阐明“名字取自剧团《蒙提·派森》,双蛇图标是后来演化形成的视觉图腾”,避免单一地回答“来源于蟒蛇”。
在日常与外国开发者或开源社区交流时,切勿将 Python 的命名解释为“因为这门语言像蟒蛇一样迅速而敏捷地绞杀任务”——这是流传在中文网络上的民间杜撰段子,官方没有任何类似说法。
六、全文总结
回到文章最初提出的问题:“Python名字来源于《蒙提派森》还是蟒蛇?”
答案非常明确且具有清晰的层次划分:其语言名字的真实源头 100% 来源于英国喜剧团体《蒙提·派森》(Monty Python)。创作者吉多·范罗苏姆在 1989 年圣诞假期的个人情趣与阅读灵感,铸就了这个短小而略显神秘的名字,也为这门语言注入了三十年未曾褪色的松弛、务实与自嘲精神;而今天我们随处可见的“双蛇交织 Logo”与爬行动物联想,则是后续出版商、设计师与全球社区在顺应英语单词本义的基础上,赋予这门伟大语言的视觉图腾。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









