Estilo de codificação (PEP8) - “dunders” no nível do módulo
Definição de "Dunder" (DoublesobPonto):http://www.urbandictionary.com/define.php?term=Dunder
Eu tenho uma pergunta de acordo com a colocação dos "dunders" no nível do módulo (como__all__
, __version__
, __author__
etc.) no código Python.
A pergunta veio à minha mente durante a leituraPEP8 e vendoesta Pergunta de estouro de pilha.
A resposta aceita diz:
__author__
é uma "variável" global e, portanto, deve aparecer abaixo das importações.
Mas na seção PEP8Nomes de dunder no nível do módulo Eu li o seguinte:
"Dunders" no nível do módulo (ou seja, nomes com dois sublinhados iniciais e dois finais), como__all__
, __author__
, __version__
, etc. devem ser colocados após a documentação do módulo, mas antes de quaisquer instruções de importação, exceto de__future__
importações. O Python exige que as importações futuras apareçam no módulo antes de qualquer outro código, exceto as doutrinas.
Os autores também fornecem um exemplo de código:
"""This is the example module.
This module does stuff.
"""
from __future__ import barry_as_FLUFL
__all__ = ['a', 'b', 'c']
__version__ = '0.1'
__author__ = 'Cardinal Biggles'
import os
import sys
Mas quando eu coloco o acima no PyCharm, vejo este aviso (também veja a captura de tela):
PEP8: importação no nível do módulo não está no topo do arquivo
Pergunta: Qual é a maneira / local correto para armazenar essas variáveis com sublinhado duplo?