Определение слова "Дандер" (Dдвойная оценка ниже): http://www.urbandictionary.com/define.php?term=Дандер
У меня есть вопрос по размещению «дандеров» уровня модуля (например, __all__
, __version__
, __author__
и т. д.) в коде Python.
Этот вопрос возник у меня, когда я читал PEP8 и видел этот вопрос о переполнении стека.
Принятый ответ гласит:
__author__
— это глобальная «переменная», поэтому она должна отображаться под импортом.
Но в разделе PEP8 имена dunder на уровне модуля Прочитал следующее:
"Dunders" уровня модуля (т. е. имена с двумя начальными и двумя конечными символами подчеркивания), такие как
__all__
,__author__
,__version__
и т. д., должны быть помещены после строки документации модуля, но перед любыми операторами импорта, за исключением__future__
imports. Python требует, чтобы будущие импорты появлялись в модуле перед любым другим кодом, кроме строк документации.
Авторы также приводят пример кода:
"""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: импорт уровня модуля не в верхней части файла
Вопрос. Как правильно хранить эти переменные с двойным подчеркиванием?