@Refiru

Pep8 как правильно переносить строку в таком варианте?

Доброго дня, как же правильного переносить строки?
# мне кажется так читается лучше
cursor.execute("""CREATE TABLE IF NOT EXISTS Users
(ID INTEGER NOT NULL PRIMARY KEY, Text TEXT, Configuration Text) """)
# в коде часто вижу так
cursor.execute("""CREATE TABLE IF NOT EXISTS Users
                (ID INTEGER NOT NULL PRIMARY KEY,
               Text TEXT, Configuration Text) """)

Оба варианта умещаются в строку 79 символов.
Но первый не выравнивается с другими параметрами пробелами.
А второй читается хуже, ИМХО. Точнее мне проще читать SQL запрос в первом варианте, но кажется люди пытаются выделить "cursor.execute"?
Для pep8 это вообще важно? или это тот случай, где можно писать как удобнее?
  • Вопрос задан
  • 136 просмотров
Решения вопроса 3
@bacon
вариант
cursor.execute(
    'CREATE TABLE IF NOT EXISTS Users('
    'ID INTEGER NOT NULL PRIMARY KEY,'
    'Text TEXT,'
    'Configuration Text)'
)

ну или еще скобочки можно отдельными строками
Ответ написан
kshnkvn
@kshnkvn Куратор тега Python
yay ✌️ t.me/kshnkvn
В первую очередь это аргумент и в pep8 все довольно ясно прописано:
The closing brace/bracket/parenthesis on multiline constructs may either line up under the first non-whitespace character of the last line of list, as in:
or it may be lined up under the first character of the line that starts the multiline construct, as in:

В документации Python используется первый вариант.
Но и второй вариант более чем допустим:
cursor.execute("""
    CREATE TABLE IF NOT EXISTS Users
    (ID INTEGER NOT NULL PRIMARY KEY,
    Text TEXT, Configuration Text)
""")

P.S. Лично мне гораздо удобнее избегать в аргументах формирование строк, так что я всегда делаю так:
query = (
    'CREATE TABLE IF NOT EXISTS Users('
    'ID INTEGER NOT NULL PRIMARY KEY,'
    'Text TEXT,'
    'Configuration Text)'
)
cursor.execute(query)

В целом довольно часто встречаю подобный подход.
Ответ написан
hottabxp
@hottabxp Куратор тега Python
Эксперт по BeautifulSoup(но это не точно!)
Как по мне, здесь не только pep8, но и SQL Style.
Почитайте интересную статью - Руководство по стилю SQL
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы