TGViewer
Python Portal Python Portal @pythonportal · 50.2K subscribers
Post #5599 7.22K
Перестаньте использовать Python-код для построения «пирамид» или «стрелок»

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

Посмотрите:

def process_user(user_data):
if user_data:
if 'name' in user_data:
if user_data['name']:
if 'email' in user_data:
if validate_email(user_data['email']):
return save_user(user_data)
else:
return "Invalid email"
else:
return "Email missing"
else:
return "Name empty"
else:
return "Name missing"
else:
return "No data"


Это называется «антипаттерн стрелки» (Arrow Anti-Pattern) или «пирамида смерти» (Pyramid of Doom). Основной сценарий спрятан в самом низу. Чтобы понять, что делает код, приходится держать в голове 4+ уровней вложенности.

А вот этот вариант гораздо лучше:

def process_user(user_data):
# Сначала обрабатываем все ошибки
if not user_data:
return "No data"

if 'name' not in user_data:
return "Name missing"

if not user_data['name']:
return "Name empty"

if 'email' not in user_data:
return "Email missing"

if not validate_email(user_data['email']):
return "Invalid email"

return save_user(user_data)


Это линейный стиль «сверху вниз», а не «вглубь и обратно». Ошибки явно обрабатываются в начале, а основная логика выделена в конце. Если данные некорректны — происходит ранний выход из функции (early return).

👉 @PythonPortal
  • ❤ 33
  • 👍 13
  • 😁 4
  • 🤝 2
More from @pythonportal
  1. Oct 7, 2026Робототехника — это, по сути, постоянное согласование систем координат. Лидар видит мир в…
  2. Oct 7, 2026Понимание алгоритмов меняет то, как вы пишете код. Этот плейлист учит именно пониманию. Па…
  3. Oct 6, 2026«Разбираемся в трансформерах и механизмах внимания» — краткое математическое введение в ме…
  4. Oct 6, 2026Начни изучать программирование GPU с одной полностью анимированной лекции на YouTube. Это…
  5. Oct 5, 2026«Основы компьютерного зрения» — бесплатная онлайн-книга издательства MIT Press, которая да…
  6. Oct 5, 2026DeepSeek выложила в открытый доступ библиотеку, которая ускоряет вычисления на GPU, лежащи…
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 →