TGViewer
Python/ django Python/ django @pythonl · 58.6K subscribers
Post #4900 8.49K
🖥 Как написать ещё более ужасный Python-код: часть 2

Первая часть - Как написать худший возможный Python-код здесь.

Если тебе показалось, что хуже уже некуда — ты просто не включал всё сразу.

Вот продолжение правил, которые гарантируют страдания будущих читателей твоего кода.

14. Используй side‑effects везде
Изменяй список внутри функции, возвращай None, пусть никто не знает, что произошло.


def corrupt(data):
for i in range(len(data)):
data[i] = None

15. Ломай SRP (Single Responsibility Principle)
Пусть одна функция отправляет запрос, пишет лог, делает retry, парсит ответ и сохраняет в БД.


def handle_user_request(request):
log_request(request)
try:
response = requests.post(...)
save_to_db(json.loads(response.text)["data"])
except:
retry_later(request)


16. Используй вложенные функции ради хаоса
Функции в функциях в функциях. Замыкания? Да, но не ради пользы, а ради анархии.


def outer():
def middle():
def inner():
print("deep")
inner()
middle()


17. Импортируй всё звёздочкой
Пусть никто не знает, откуда приходят функции. Магия.


from somewhere.unknown import *


18. Используй случайную логику
Добавь random в бизнес-функции. Почему бы и нет?


import random

def calculate_discount():
return random.choice([0, 5, 10, 50])


19. Используй структуры не по назначению
Сохраняй все данные в строках. JSON, XML, дата, числа — всё строкой.


user = {
"name": "Alice",
"age": "27",
"is_active": "true",
"joined": "2023-12-01"
}


20. Игнорируй ошибки
Тихо, мирно, try/except без except. Или просто pass. Не паникуй.



try:
do_critical_operation()
except:
pass


21. Логируй всё подряд
Каждый шаг. Каждую переменную. Каждую мысль.


print("entering loop")
print("value of x:", x)
print("loop end")


22. Используй глобальные настройки через переменные
Никаких config-файлов. Пусть все настройки — глобальные переменные.


DEBUG_MODE = True
RETRY_COUNT = 3

23. Пиши асинхронный код синхронно
async с time.sleep, await с requests.get. Главное — выглядеть современно.


import time

async def fetch_data():
time.sleep(3)
return "data"

24. Храни всё в одной функции
1000 строк? Один def main(). Абсолютно всё. Другие функции — для слабаков.


def main():
# 600 строк бизнес-логики
pass



🧠 Заключение

Если ты следуешь этим правилам — ты либо пишешь код, который никто не осмелится менять,
либо работаешь на тёмной стороне. Но лучше всё же пересмотреть подход.

"Simple is better than complex.
Complex is better than complicated.
Readability counts."
— The Zen of Python

@pythonl
  • ❤ 23
  • 🤩 7
  • 🔥 6
  • 👍 4
  • 😁 4
More from @pythonl
  1. Oct 4, 2026🐍 Python тормозит? В 3.15 добавили инструмент, который покажет где Tachyon (`profiling.sa…
  2. Oct 2, 2026webAI выпустила TwIL-LM3-Pro - компактную модель на 3,66B параметров специально для формал…
  3. Oct 1, 2026🔥 Бесплатный курс по Claude Code на русском: от установки до команды агентов На GitHub вы…
  4. Sep 30, 2026🖥 Cayu - open-source runtime для долгоживущих ИИ-агентов на Python Проект закрывает инфра…
  5. Sep 29, 2026🖥 Примеры кода на Python 2026: лучшие практики, разбор и задачи с решениями Python пример…
  6. Sep 28, 2026🚀 Jina-OCR-v1 разбирает целые страницы в Markdown со скоростью 2,57 страницы/с Jina AI пр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →