Определение "Dunder" (D ouble под счет): http://www.urbandictionary.com/define.php?term=Dunderкодирования стиль (PEP8) - на уровне модуля "dunders"
У меня есть вопрос по размещению уровне модуля «dunders» (например, __all__
, __version__
, __author__
и т. д.) в коде Python.
Вопрос подошел ко мне при чтении через PEP8 и посмотрел this Вопрос переполнения стека.
Принятый ответ говорит:
__author__
является глобальным «переменным» и, следовательно, должен появиться ниже импорта.
Но в разделе PEP8 Module level dunder names я прочитал следующее:
уровня модуля "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: модуль импорт уровень не в верхней части файла
Вопрос: Каков правильный путь/место для хранения этих переменных с двойными подчеркиваниями?
PEP 8 - это живой документ. Учтите, что раньше это могло быть * тихим *. –
@MartijnPieters - Любой шанс увидеть, когда раздел был добавлен/изменен? – linusg