Змея / Говнокод #11915 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
       obj_l = list()
        for obj, obj_id in [(QuizQuestion, quest_id), (QuizAssigment, ass_id), (QuizQuestionAnswer, answ_id)]:
            q_set = getattr(getattr(obj, 'objects'), 'filter')(id=obj_id)
            obj_l.append(getattr(q_set, 'count')() > 0 and q_set[0] or False)
        (False in obj_l or obj_l[2].question != obj_l[0] or (user and obj_l[0].user)) and abort(IntegrityError())

1) хер такое прочтешь
2) для осмысления прочитанного нужно выпить
3) за осмысление такого нужно выпить еще раз
4) чувак узнал про getattr, хотя стоило вызвать напрямую obj.objects.filter(id=obj_id)
5) q_set.count() > 0 and q_set[0] or false
пятая строка поддается пониманию но катастрофически быстро начинает от этого терять смысл

Запостил: nimnull nimnull, (Updated )

Комментарии (4) RSS

  • В пятой строке ленивое вычисление булевых выражений используется как замена if?
    "Ну нихрена себе извраааат!" (с)
    Ответить
    • Угум, именно так. Сакральный смысл такого подхода для меня то же остался тайной
      Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8