O caso e formato correto de variáveis e métodos e para Python
-
20-09-2019 - |
Pergunta
Portanto, sei que alguns idiomas esperam convenções.
PHP- underscore_case()
[na maior parte, haha]
Java - camelCase()
C# - PascalCase()
etc.
Qual é a convenção de nomenclatura "Pythonic"?Eu sei que isso não importa no final, mas estou apenas me perguntando se existe uma maneira de "melhores práticas" para a maioria dos módulos.
Solução
Duas palavras: PEP 8.
PEP 8 é o guia de estilo Python (de fato).Alguns destaques deste documento (deixei algumas coisas de propósito;leia o documento original para saber os detalhes):
Nomes de pacotes e módulos:Nomes todos em letras minúsculas.Os sublinhados podem ser usados no nome do módulo se melhorarem a legibilidade.
Nomes de classes:Quase sem exceção, os nomes de classes usam a convenção CapWords.*
Nomes de variáveis globais:As convenções são praticamente as mesmas das funções.
Nomes de funções:Os nomes das funções devem estar em letras minúsculas, com palavras separadas por sublinhados conforme necessário para melhorar a legibilidade.mixedCase é permitido apenas em contextos onde esse já é o estilo predominante (por exemplo,
threading.py
), para manter a compatibilidade com versões anteriores.Nomes de métodos e variáveis de instância:Letras minúsculas com palavras separadas por sublinhados conforme necessário para melhorar a legibilidade.Use um sublinhado inicial apenas para métodos não públicos e variáveis de instância.
Constantes:Escrito em letras maiúsculas com sublinhados separando as palavras.Exemplos incluem.
Outras dicas
Ler PEP 8.
É um guia de estilo para código Python, escrito pelo criador do Python, Guido van Rossum.
Aliás, a resposta à sua pergunta é usar underscore_case
para variáveis e nomes de funções, e PascalCase
para aulas.
Sete palavras: Guia de estilo Python do Google Summer of Code
Observe que algumas convenções de nomenclatura diferem do PEP8 e, em vez disso, seguem o guia de estilo original do Google Python que deu origem a este guia de estilo.
- "Interno" significa interno a um módulo ou protegido ou privado dentro de uma classe.Anexar um único sublinhado (_) tem algum suporte para proteger variáveis e funções de módulo (não incluído em import * from).
- Anexar um sublinhado duplo (__) a uma variável ou método de instância serve efetivamente para tornar a variável ou método privado para sua classe (usando manipulação de nome).
- Coloque classes relacionadas e funções de nível superior juntas em um módulo.Ao contrário do Java, não há necessidade de se limitar a uma classe por módulo.No entanto, certifique-se de que as classes e funções de nível superior no mesmo módulo tenham alta coesão.
- Use CapWords para nomes de classes, mas lower_with_under.py para nomes de módulos.
Exemplos de nomenclatura
- Pacotes:
lower_with_under
- Módulos:
lower_with_under
,_lower_with_under
- Aulas:
CapWords,
_CapWords
- Exceções:
CapWords
- Funções:
firstLowerCapWords()
,_firstLowerCapWords()
- Constantes globais/de classe:
CAPS_WITH_UNDER
,_CAPS_WITH_UNDER
- Variáveis globais/de classe:
lower_with_under
,_lower_with_under
- Variáveis de instância:
lower_with_under
,_lower_with_under
(protegido) ou__lower_with_under
(privado)- Nomes de métodos:
firstLowerCapWords()
,_firstLowerCapWords()
(protegido) ou__firstLowerCapWords()
(privado)- Parâmetros de função/método:
lower_with_under
- Variáveis locais:
lower_with_under