Определение "Dunder" (D ouble под): http://www.urbandictionary.com/define.php?term=Dunder
У меня возникает вопрос о размещении модулей уровня "dunders" (например, __all__
, __version__
, __author__
и т.д.) в коде Python.
Вопрос подошел ко мне, читая PEP8 и увидев этот Вопрос.
В принятом ответе говорится:
__author__
- глобальная "переменная" и поэтому должна отображаться ниже импорта.
Но в разделе PEP8 Имя домена на уровне модуля Я прочитал следующее:
Уровень модуля "dunders" (т.е. имена с двумя ведущими и двумя конечными подчеркивания), такие как
__all__
,__author__
,__version__
и т.д. должны размещаться после модуля docstring, но перед любыми операциями импорта кроме импорта__future__
. Python требует, чтобы будущий импорт должен появиться в модуле перед любым другим кодом, кроме docstrings.
Авторы также приводят пример кода:
"""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
Но когда я помещаю это в PyCharm, я вижу это предупреждение (также см. скриншот):
PEP8: импорт уровня модуля не поверх файла
Вопрос: Каков правильный способ/место для хранения этих переменных с двойными символами подчеркивания?