Стиль кодирования (PEP8) – Уровень модуля "dunders"

Определение «Dunder» (Doubble under score): http://www.urbandictionary.com/define.php?term=Dunder


У меня вопрос, связанный с размещением модулей уровня «dunders» (например, __all__ , __version__ , __author__ и т. Д.) В коде Python.

Вопрос подошел ко мне при чтении через PEP8 и просмотре этого вопроса о переполнении стека.

В принятом ответе говорится:

__author__ – глобальная «переменная» и поэтому должна появляться ниже импорта.

Но в разделе PEP8 « Уровни модуля» я читал следующее:

Уровень модуля «dunders» (т.е. имена с двумя ведущими и двумя __all__ __author__ подчеркивания), такие как __all__ , __author__ , __version__ и т. Д., Следует размещать после документа docstring, но перед любыми __future__ импорта, кроме импорта __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: импорт уровня модуля не вверху файла

PyCharm игнорирует PEP8?

Вопрос: Каков правильный способ / место для хранения этих переменных с двойными символами подчеркивания?

One Solution collect form web for “Стиль кодирования (PEP8) – Уровень модуля "dunders"”

Недавно PEP 8 был обновлен, чтобы разместить место перед импортом. См. Ревизию cf8e888b9555 , совершенную 7 июня 2016 года:

Отдохните __all__ .

Поместите все глушители уровня модуля в одном месте и удалите избыточную информацию о верификации версии.

Закрывается # 27187. Патч от Ян Ли.

Текст был дополнительно обновлен на следующий день, чтобы решить проблему from __future__ import ... .

Патч-ссылки для выпуска № 27187 , которые, в свою очередь, ссылаются на эту проблему pycodestyle , где было обнаружено, что PEP 8 неясен.

До этого изменения, поскольку не было четкого указания на глобальные глобальные глобальные уровни, поэтому PyCharm и другой ответ были правильными в то время . Я не уверен, как PyCharm реализует свои проверки PEP 8; если они используют проект pycodestyle (defacto Python style checker), то я уверен, что он будет исправлен автоматически. В противном случае, возможно, зарегистрируйте ошибку с ними, чтобы увидеть это исправлено.

  • PyCharm «Запустить конфигурацию», запрашивая «параметры скрипта»,
  • Как отключить специальную инспекцию по именованию PEP 8 в PyCharm
  • PyCharm - Появляется ли автор перед импортом?
  • PyQt: нет ошибки msg (traceback) при выходе
  • Как вернуться в PyCharm во время просмотра кода, например, у нас есть кнопка возврата в eclipse?
  • Как использовать Python getpass.getpass в PyCharm
  • Pycharm: установить переменную среды для запуска manage.py Task
  • Почему автозаполнение PyCharm не работает для библиотек, которые я устанавливаю?
  •  
    Interesting Posts for Van-Lav

    python 3.1 с pydev

    Почему Python не отобразит этот текст правильно? (Проблема декодирования UTF-8)

    Сюжетные графики гистограмм в Python

    Ошибка сокета Python при получении данных UDP. (10054)

    Как получить две случайные записи с Django

    Фильтровать столбцы только нулей из кадра данных Pandas

    Python PIL Изображение в автоматическом изменении метки

    Как читать файлы N строк за раз в Python?

    python xlutils: formatting_info = Истина еще не реализована

    В python django, как вы распечатываете интроспекцию объекта? Список всех общедоступных методов этого объекта (переменная и / или функции)?

    Эффективное соответствие нескольким регулярным выражениям в Python

    Как преобразовать список фреймов данных в панель в python-pandas?

    как мне получить python для компиляции с libz?

    Как я могу взорвать кортеж, чтобы он мог быть передан как список параметров?

    Как печатать класс или объекты класса с помощью print ()?

    Python - лучший язык программирования в мире.