Estilo de codificación (PEP8) - Nivel de módulo "dunders"
Definición de "Dunder" (DdobledebajoPuntuación):http://www.urbandictionary.com/define.php?term=Dunder
Tengo una pregunta según la ubicación del módulo "dunders" (como__all__
, __version__
, __author__
etc.) en código Python.
La pregunta se me ocurrió mientras leíaPEP8 y viendoesta Pregunta de desbordamiento de pila.
La respuesta aceptada dice:
__author__
es una "variable" global y, por lo tanto, debe aparecer debajo de las importaciones.
Pero en la sección PEP8Nombres de dunder de nivel de módulo Leo lo siguiente:
Módulo "dunders" (es decir, nombres con dos guiones bajos iniciales y dos subrayados) como__all__
, __author__
, __version__
, etc. deben colocarse después de la cadena de documentación del módulo pero antes de cualquier declaración de importación, excepto de__future__
importaciones Python exige que las importaciones futuras deben aparecer en el módulo antes que cualquier otro código, excepto las cadenas de documentos.
Los autores también dan un ejemplo 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
Pero cuando pongo lo anterior en PyCharm, veo esta advertencia (también veo la captura de pantalla):
PEP8: la importación a nivel de módulo no está en la parte superior del archivo
Pregunta: ¿Cuál es la forma / lugar correcto para almacenar estas variables con guiones bajos dobles?