Convenção de nomenclatura de arquivos Python?


138

Eu já vi essa parte do PEP-8 https://www.python.org/dev/peps/pep-0008/#package-and-module-names

Não sei ao certo se isso se refere ao nome do arquivo de um módulo / classe / pacote.

Se eu tivesse um exemplo de cada, os nomes de arquivos deveriam estar em letras minúsculas com sublinhados, se apropriado? Ou alguma outra coisa?


4
tl; dr: duas classes FooBare FooBizpode ir no arquivo somepkg/foobar.py(assim from somepkg.foobar import FooBar:), mas a classe TimerErrorpode entrar except/timer_error.py(assim from except.timer_error import TimerError), uma vez que remover as CamelCasevezes dificulta a leitura da palavra, portanto snake_casepode ser usado para o nome do arquivo.
22618 Michael

Respostas:


156

Citando https://www.python.org/dev/peps/pep-0008/#package-and-module-names :

Os módulos devem ter nomes curtos e todos em minúsculas. Sublinhados podem ser usados ​​no nome do módulo se melhorar a legibilidade. Os pacotes Python também devem ter nomes curtos, todos em minúsculas, embora o uso de sublinhados seja desencorajado.

Para aulas :

Os nomes de classe normalmente devem usar a convenção CapWords.

E os nomes das funções e das variáveis ​​(locais) devem ser:

minúsculas, com palavras separadas por sublinhados conforme necessário para melhorar a legibilidade

Veja esta resposta para a diferença entre um módulo, classe e pacote:

  • Um módulo Python é simplesmente um arquivo de origem Python, que pode expor classes, funções e variáveis ​​globais.
  • Um pacote Python é simplesmente um diretório de módulo (s) Python.

Então o PEP 8 diz a você que :

  • os módulos (nomes de arquivos) devem ter nomes curtos e minúsculos e podem conter sublinhados;
  • os pacotes (diretórios) devem ter nomes curtos e minúsculos , de preferência sem sublinhados;
  • As classes devem usar a convenção CapWords.

O PEP 8 diz que os nomes devem ser curtos ; Esta resposta fornece uma boa visão geral do que levar em consideração ao criar nomes de variáveis, que também se aplicam a outros nomes (para classes, pacotes etc.):

  • nomes de variáveis ​​não são descritores completos;
  • colocar detalhes nos comentários;
  • nome muito específico pode significar código muito específico;
  • mantenha escopos curtos para pesquisa rápida;
  • gaste tempo pensando em legibilidade.

Para finalizar, uma boa visão geral das convenções de nomenclatura é fornecida no Guia de estilos do Google Python .


5
E eu vou pedir vergonha para confirmar meu entendimento, os módulos contêm classes - então você usaria classes dentro de módulos e poderia ter várias classes em um módulo?
darkace

6
Sim, você pode ter 0, 1 ou mais classes em um módulo.
agold

1
Fico feliz por ter encontrado isso antes do meu projeto ficar fora de controle, pois todos os meus pacotes estavam seguindo a convenção do CapsWords assim como minhas aulas.
Bas Jansen

1
@pypmannetjies, essa é realmente outra questão, mas eu diria que você deve preferir nomes longos e compreensíveis a nomes curtos e não compreensíveis.
agold 30/04

1
Para o nome do pacote, diz "o uso de sublinhados é desencorajado", não é proibido. Na filosofia python, você deve seguir a regra ", embora a praticidade supere a pureza". Claro, o melhor é encontrar uma maneira de seguir a regra e ser prático (talvez fazer vários pacotes para dividir o nome, some> long> nameem vez de somelongname?)
Juh_

0

Aqui está um link para diferentes tipos de convenções de nomes do Python.

O guia de estilo para Python é baseado nas recomendações da convenção de nomenclatura de Guido.

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.