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.

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top