← Blog··Updated 29 May 2026·6 min read

Why Python is called Python (it's Monty Python, not the snake)

Guido van Rossum named Python in December 1989 after Monty Python's Flying Circus, not the reptile. The snake logo is a 2006 retrofit, the docs say spam and eggs instead of foo and bar, and the BDFL title started as a joke in a 1995 mailing-list thread.

AI-assisted postDrafted with help from Claude, edited and fact-checked by Mart. See transparency policy →
God addresses King Arthur in Monty Python and the Holy Grail

God (a Terry Gilliam cutout) in Monty Python and the Holy Grail, 1975. The language is named after the troupe, not the snake. Image: Python (Monty) Pictures.

The snake on the Python logo is a lie, or at least a retrofit. The language is not named after the reptile. It is named after Monty Python's Flying Circus, the BBC comedy troupe, and the evidence for this is not folklore — it is in the documentation, where example variables are called spam and eggs instead of foo and bar, a direct reference to a sketch about a café where every dish comes with Spam. The two-snake logo did not appear until 2006, seventeen years after the name was chosen, and was a deliberate act of brand-building on top of a name that had nothing reptilian about it. Guido van Rossum picked Python because he was reading Monty Python scripts at the time and wanted something short, unique, and slightly irreverent. The snake came to the party late and stayed.

A hobby project over Christmas 1989

Python began as a way to pass the holidays. In December 1989, Guido van Rossum was a researcher at CWI in Amsterdam, and he was looking for a "hobby" programming project to keep himself occupied during the week around Christmas, when the office was closed. He had been thinking about a new scripting language — a descendant of ABC, a teaching language he had worked on at CWI, that would appeal to Unix and C programmers. ABC had good ideas and a fatal flaw: it was a closed system that could not be extended, and Van Rossum wanted to fix that.

So over that Christmas week he started writing an interpreter. The language took ABC's emphasis on readability — significant indentation, clean syntax, an aversion to the punctuation soup of C — and grafted on the extensibility ABC lacked. Indentation-as-syntax, the single most recognisable feature of Python and the one that still starts arguments, is an ABC inheritance, not a Van Rossum invention. What was new was the willingness to let C programmers extend the language with their own modules, which is the feature that eventually made Python the glue language of scientific computing and machine learning.

The name was Monty Python, full stop

When it came time to name the thing, Van Rossum wanted something short, unique, and slightly mysterious, and he happened to be reading the published scripts of Monty Python's Flying Circus at the time. The official Python FAQ states this plainly: the language is named after the BBC show, and Van Rossum "had no particular interest in snakes." The connection to the comedy troupe is not a fan theory the community grew into; it is the documented intent of the person who chose the name, recorded in the project's own FAQ.

This matters because the alternative explanation — that Python is named after the snake — is the one most people reach for, and it is wrong. The snake is the obvious referent for a programming language called Python, in the same way that the reptile is the obvious referent for the Anaconda distribution and a dozen other tools. But the obvious referent is not the actual one. The actual one is the Monty Python comedy troupe and a sketch show that ran from 1969 to 1974, full of dead parrots, Spanish Inquisitions, and the café with the Spam.

Monty Python pervades the culture of the language well beyond the name. The community's documentation explicitly encourages references to Monty Python sketches, and they are everywhere once you look — in tutorials, in error-message examples, in the names of conferences and packages. The naming convention this produced is the most visible artifact, and it is worth its own section.

Spam, eggs, and ham instead of foo and bar

Most programming traditions reach for foo, bar, and baz when they need a throwaway variable name — placeholder identifiers with no meaning, used purely to demonstrate structure. The lineage of foo and bar runs back through hacker culture to the military-slang FUBAR, covered in passing in the post on what grep stands for and the broader Unix naming traditions.

Python's documentation does something different. It reaches for spam, eggs, and ham. These are not random food words. They come from the Spam sketch, in which a couple try to order breakfast at a café where nearly every dish contains Spam, while a group of Vikings drowns out the conversation by singing the word "Spam" — which the sketch repeats over a hundred times. (This is also, incidentally, the origin of spam as the word for unsolicited email: the unwanted, repetitive, drowning-everything-out quality is the same.) When you read a Python tutorial and see a function called spam() taking arguments eggs and ham, you are reading a Monty Python reference embedded in the official teaching material of the language. The metasyntactic convention is a load-bearing piece of the naming story: it is the proof, repeated in millions of code examples, that the name means the comedy troupe.

The BDFL title started as a joke

Van Rossum's long-held title within the project — Benevolent Dictator for Life, abbreviated BDFL — is in the same comedic register, and it also has a documented origin that is more specific than most people assume. The term was coined in 1995, shortly after Van Rossum moved to the United States to work at CNRI. At a meeting trying to set up a semi-formal group to oversee Python's development, Ken Manheimer used the phrase "benevolent dictator" in a follow-up email, with the additional joke of naming Van Rossum the "first interim BDFL." Barry Warsaw is credited with extending it to the full "Benevolent Dictator for Life."

The title stuck for over two decades. It described a real governance arrangement — Van Rossum had final say on language design disputes, which is genuinely how Python was steered through most of its life — wrapped in a self-deprecating joke about the absurdity of one person holding that power. Van Rossum stepped down as BDFL on 12 July 2018, after a particularly bruising fight over the "walrus operator" (:=), handing governance to an elected Steering Council. The joke title outlived the joke; the actual dictatorship ended when the dictator decided, benevolently, that he was done.

The snake was a 2006 retrofit

The Python two-snake logo

The two-snake logo, designed by Tim Parkin and introduced in 2006 — seventeen years after the name was chosen. The reptile the language was never named after.

For its first decade and a half, Python had no snake. The early identity was a wordmark — the name set in a custom typeface, no animal, no reptile, no acknowledgement that the word python even has a non-comedic meaning. The language was named after a comedy show and its visual identity reflected that: text, not iconography.

The two-snake logo — the interlocking blue and yellow snakeheads forming a stylised shape, designed by Tim Parkin — arrived in 2006. By then Python was a globally recognised name, and the design decision was to lean into the snake imagery that the name had always suggested to outsiders, even though the snake was never the intended meaning. The logo is a retrofit in the most literal sense: it grafts a reptile onto a name that was about Monty Python, because by 2006 the reptile was the more legible international symbol. A snake reads instantly in any language. A reference to a 1970s British comedy sketch about Spam does not.

This is the quiet inversion at the centre of the Python naming story. The name was always about the comedians; the documentation still proves it with spam and eggs; the leadership title was a Monty Python-flavoured joke; and yet the logo — the thing most people actually see — commemorates the meaning the name never had. The snake won the branding even though it lost the etymology. It is a bit like the relationship between JavaScript and Java, where the name points at one thing and the substance is something else entirely, except here the misdirection is in the logo rather than the name.

A short close

Python is named after Monty Python's Flying Circus, chosen by a researcher reading comedy scripts over a Christmas holiday in 1989 because he wanted something short and a little irreverent. The proof is durable and everywhere: spam and eggs in the official docs, the BDFL title that started as a mailing-list joke in 1995, the documentation's standing encouragement to keep making the references. The snake is the part everyone gets wrong, and the logo is why — a 2006 brand decision to commemorate the meaning the name never had, because a reptile travels across languages and a Spam sketch does not. The language is a coding tool named after a comedy troupe and wearing the skin of a snake it was never about. All three of those things are true at once, which is itself fairly Monty Python.

Read next