Пустая строка Python PEP8 лучшая практика в определении класса [закрыто]
Я всегда оставляю пустую строку после определения класса, и код кажется совместимым с PEP8, поскольку для этого не возникает никакого предупреждения. Я делаю это, потому что я нашел его более читаемым, чем писать все вместе.
class Area(BaseModel):
name = models.CharField(_("Name"), max_length=30)
slug = models.SlugField(_("Slug"), max_length=30, unique=True)
class Meta(BaseModel.Meta):
verbose_name = _("Area")
verbose_name_plural = _("Areas")
ordering = [
"name",
]
однако, когда я читаю код PEP8 совместимый. Это дополнительное пространство никогда не было и этот код будет выглядеть так:
class Area(BaseModel):
name = models.CharField(_("Name"), max_length=30)
slug = models.SlugField(_("Slug"), max_length=30, unique=True)
class Meta(BaseModel.Meta):
verbose_name = _("Area")
verbose_name_plural = _("Areas")
ordering = [
"name",
]
мой вопрос: это "плохая практика", что я делаю. Должен ли я избегать этих дополнительных пустых строк в Python?
2 ответов
это действительно вопрос вкуса. Я лично включаю пустую строку, которая будет состоять из классов, которые имеют docstring. Цитата PEP-0257:
вставьте пустую строку до и после всех документов (однострочных или многострочных), которые документируют класс-вообще говоря, методы класса отделены друг от друга одной пустой строкой и docstring должен быть смещен от первого метода пустой строкой; для симметрии поместите пустая строка между заголовком класса и docstring.
для примера:
class WithoutDocString(object):
def __init__(self):
pass
class WithADocString(object):
"""Summary line.
Bla bla bla bla.
"""
def __init__(self):
pass
Как я понимаю раздел пустой строки PEP-8, есть некоторая свобода в этом вопросе. Пустые строки могут появляться в некоторых местах (разделяя группы связанных функций) и могут быть опущены в других местах (для группировки списка однострочных строк).
однако нет свободы в отношении пустых строк после заголовков определений. Они не должны появляться в соответствии с правилами ОПТОСОЗ-8.
ваш PEP-8 compliance checker, похоже, не проверяет это, хотя.
вообще (не связанный с PEP-8), у меня такое чувство, что пустые строки, как и многие другие проблемы форматирования, - это вопрос того, к чему вы привыкли. Я не знаю научных исследований, которые показывают, какое форматирование лучше всего работает на непредвзятых разработчиках. И большинство из нас в любом случае предвзяты, так что даже это, вероятно, не очень много значит.
при редактировании существующего кода мой основной подход всегда заключается в том, чтобы придерживаться существующего форматирования. Но это к делу не относится. ;-)