Como definir constante em Python

Neste artigo você vai aprender como definir constante em Python, também para que servem as constantes no Python e como devemos utilizá-las

Python não tem um tipo de constante nativo: por ser uma linguagem dinâmica, qualquer valor pode ser reatribuído enquanto o código roda. Na prática você define uma constante por convenção, escrevendo o nome todo em maiúsculas com as palavras separadas por underline (o famoso UPPER_SNAKE_CASE), como recomenda a PEP 8, por exemplo TOTAL_MAXIMO = 100. Desde o Python 3.8 dá pra ir além e marcar o nome com o typing.Final (ex: MAX_SIZE: Final = 1024), que sinaliza que aquele valor não deve ser reatribuído. Só tem um detalhe importante: o Final é verificado apenas por checadores de tipo estáticos, tipo o mypy, ele não bloqueia a reatribuição em tempo de execução, então o código roda mesmo se a regra for quebrada

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 116 aulas
  • 4 projetos
  • 9h 23min

como definir constante em python capa

Fala programador(a), beleza? Bora aprender mais sobre constantes na linguagem Python!

Na verdade ainda não é possível criar uma constante em Python como em outras linguagens, onde seu valor não é alterado

Pelo menos não no ano que escrevo este artigo hehe

Porém na documentação, caso você opte por criar uma variável com sintaxe de constante, há algumas instruções a serem seguidas

Todas as letras da variável que servirá como constante devem ficar uppercase (maiúsculas)

E também se houver mais de uma palavra elas devem ser separadas por underline

Veja dois exemplos:

CONSTANTE = 1

CONSTANTE_DOIS = 2

Esse é o padrão recomendado na documentação da linguagem Python

Você pode deixar um comentário inline explicando que aquela variável é na verdade uma constante

Obs: Talvez no futuro adicionem a instrução de constante em Python, então atualizarei este artigo conforme a documentação fornecer esta informação

Conclusão

Neste artigo vimos como definir constante em Python – que na verdade não existe uma sintaxe própria

E sim delimitar a variável com uma sintaxe que se assemelha as constantes de outras linguagens, como é indicado na documentação

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Explicar que desde o Python 3.8 existe o qualificador typing.Final (veio pela PEP 591) pra sinalizar que um nome não deve ser reatribuído, com exemplo real: importar Final do módulo typing e escrever MAX_SIZE: Final = 1024 (ou MAX_SIZE: Deixar CLARO o pulo do gato: o Final não impõe nada em tempo de execução, ele é checado só por verificador de tipo estático (mypy, pyright e afins), então se você reatribuir o valor o código roda do mesmo jeito, quem reclama é o type checker, não o Python rodando

Reforçar o PORQUÊ de nenhuma dessas abordagens ser uma constante ‘de verdade’: Python é dinâmico, o valor sempre pode ser reatribuído em runtime, não existe imutabilidade imposta pela linguagem. Constante em Python é convenção e sinalização, não imposição

Atualizar esse aviso: em vez de ‘talvez no futuro’, apontar que já existe uma sinalização parcial (o typing.Final), deixando claro que ela ainda não é uma constante imutável em runtime. Assim o post deixa de soar desatualizado

Adicionar 3 a 4 perguntas e respostas curtas cobrindo as dúvidas diretas: Python tem constante? Constante em Python é maiúscula ou minúscula? Como impedir que o valor mude? O que é o typing.Final? (respostas no bloco ‘geo’ abaixo)

Não vou fingir experiência que não tenho aqui: o material próprio que temos é sobre estrutura de repetição em Python, não sobre constante, então não tem teste de primeira mão de constante pra ancorar. O que dá pra deixar como roteiro honesto de teste pra quem quiser comprovar: criar uma variável marcada como Final (MAX_SIZE: Final = 1024), tentar reatribuir logo abaixo, rodar o script normalmente e ver que o Python executa sem reclamar, e depois passar o mypy no mesmo arquivo pra ver o checador acusar a reatribuição. Esse contraste (código roda, mas o type checker aponta) é o jeito de sentir na prática que o Final é sinalização estática, não trava de runtime

Perguntas frequentes

Python tem constante?

Nativa e imutável, não. Python é dinâmico, então o valor sempre pode ser reatribuído. O que existe é convenção (nome em maiúsculas) e o typing.Final pra sinalizar a intenção de não mudar

Constante em Python é maiúscula ou minúscula?

Maiúscula. A PEP 8 recomenda o nome todo em letras maiúsculas com as palavras separadas por underline, o UPPER_SNAKE_CASE, como em MAX_OVERFLOW ou TOTAL_MAXIMO

Como impedir que o valor de uma constante mude em Python?

Em tempo de execução, você não impede: a linguagem sempre deixa reatribuir. Dá pra marcar o nome com typing.Final pra que um verificador de tipo estático (mypy, pyright) aponte a violação, mas isso é um aviso na análise, não um bloqueio quando o código roda

O que é o typing.Final?

É um qualificador adicionado ao Python na versão 3.8 (pela PEP 591) que serve pra dizer que um nome não deve ser reatribuído. Usa assim: MAX_SIZE: Final = 1024 ou MAX_SIZE: Ele é checado só por type checkers estáticos, sem imposição em runtime

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

8 Comentários
Oldest
Newest Most Voted
Jeoás

Obrigado, seu artigo me ajudou D+

Battisti

De nada amigo! =)

Elisiani

Valeu pelo esclarecimento!!

Battisti

de nada =)

Bruno

Como fazer quando se tem um projeto grande, e você precise definir um arquivo para constantes como (constants.py) por exemplo, e tenha que usar esse arquivo como base de constantes para todo o projeto?
Eu coloquei todas as minhas constantes num arquivo .py e depois importo ele nos outros. O problema é que quando for usar uma constante, tenho que chamar cs.NOME por exemplo, ao invés de chamar só o nome da constante diretamente. Existe alguma outra forma de fazer isso melhor ou estou correto?

Orlando

boa

Battisti

valeu Orlando!

julio

uma das coisas que não gosto no python é a liberalidade excessiva, existem apenas algumas convenções a serem seguidas mas no geral a linguagem não vai impedir o programador de fazer besteira. O que é péssimo para projetos em equipe

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares