Думаю, часто у многих возникает один и тот же вопрос: как правильно переносить код в Python, чтобы он был и рабочий, и читаемый?
Особенно когда у вас длинные вызовы функций, цепочки методов и SQL внутри скрипта.
База, которую нужно запомнить
1. Внутри
(), [], {} можно переносить строки без \.2. Закрывающую скобку лучше ставить на отдельной строке.
А теперь рассмотрим эти правила на примерах:
1️⃣ Правильный шаблон переноса функции:
Пример правильного шаблона:
df = pd.read_excel(
"path",
sheet_name="Sheet1",
header=0,
)
Почему так удобно:
• быстро читается;
• легко добавлять новые аргументы;
Главное:
• все аргументы на одном уровне отступа;
• без "лесенки" из разного количества пробелов.
2️⃣ Важный момент: скобки не заменяют блок кода:
Вот так писать нельзя:
(
pd.read_excel("path")
text = input("Введите запрос")
)
Почему так писать нельзя: в круглых скобках Python ждет выражение, а не несколько инструкций с присваиванием.
Правильно:
df = pd.read_excel(
"path",
sheet_name="Sheet1",
)
text = input("Введите запрос: ")
3️⃣ Перенос цепочки методов:
1) Лучший вариант это через написания выражения в скобках: читается проще и меньше шансов сломать форматирование:
result = (
pd.read_excel(
"data.xlsx",
sheet_name="Sheet1",
)
.rename(columns={"old": "new"})
.query("amount > 0")
.groupby("category", as_index=False)
.agg(total=("amount", "sum"))
)
2) Можно через обратный слэш, но лучше как исключение:
df = pd.read_excel("dataframe.xlsx") \
.rename(columns={"name_column": "new_name_column"}) \
.describe()Минусы
\:• случайный пробел после
\ может сломать строку;• хуже поддерживать длинные выражения.
Итог: 🤩
Переносы это не "красота ради красоты", а скорость чтения и меньше ошибок.
Рабочее правило простое: перенос через скобки + 4 пробела (табуляция) + единый стиль во всем проекте.
❤️ Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)
❓ Как вы переносите код в проектах: через скобки,
\ или смешанный стиль? ✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.
🚬 Пишу резюме специально для вас: mentor.dima-sqlit.ru
