ENPT

O Zen do Python

O Easter Egg

Execute import this em qualquer interpretador Python e você recebe 19 aforismos escritos por Tim Peters em 1999, embutidos na linguagem como um Easter egg:

Python 3.14.5 (tags/v3.14.5:5607950, May 10 2026, 10:43:50)
Type "help", "copyright", "credits" or "license" for more information.
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Por trás do poema

O poema é anterior ao PEP 20; ele circulou na lista de discussão comp.lang.python anos antes de Guido van Rossum formalizá-lo. O código-fonte do módulo this é, por si só, uma piscadela: o poema é armazenado como uma string codificada em ROT-13 e decodificado no momento do import.

Vale a pena desacelerar

A maioria dos aforismos parece um conselho obviamente bom até você tentar aplicá-los a uma decisão real. Alguns valem uma desaceleração.

Explicit is better than implicit. Os *args e **kwargs do Python são úteis, mas podem tornar o contrato de uma função invisível. Uma função que aceita **kwargs e os repassa para três subsistemas diferentes é tecnicamente Python válido e também uma armadilha para quem lê o call site.

Errors should never pass silently. Unless explicitly silenced. A cláusula except: nua é a violação canônica. Ela engole KeyboardInterrupt, SystemExit e todo bug que você ainda não escreveu. except SomeSpecificError: pass é uma escolha deliberada. O silêncio é o problema; a intenção não.

There should be one obvious way to do it. É isso que mais distingue a filosofia do Python do “there’s more than one way to do it” do Perl. Não é uma promessa que o Python cumpre perfeitamente (só a formatação de strings já te dá %, .format() e f-strings), mas é um objetivo declarado.

If the implementation is hard to explain, it’s a bad idea. Se você não consegue descrever o que o seu código faz para um colega em uma ou duas frases, vale levar isso a sério — nem sempre é motivo para reescrever, mas é sempre motivo para olhar de novo.

Tensões embutidas

Vários aforismos são escritos em deliberada tensão uns com os outros, e essa é a ideia. Simple is better than complex. Complex is better than complicated. A simplicidade é preferida, mas não ao custo de uma bagunça emaranhada fingindo ser simples. Now is better than never. Although never is often better than right now. O par resiste a ser achatado em uma única regra, porque a decisão certa depende do contexto.

O Zen não é um guia de estilo. Está mais para um conjunto de prioris, uma disposição a levar para as decisões quando a resposta certa não é óbvia. O fato de ele vir como um Easter egg, disparado por um import sem sentido, faz parte da mensagem.