1. Python / Говнокод #11915

    −102

    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, 12 Октября 2012

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

    • В пятой строке ленивое вычисление булевых выражений используется как замена if?
      "Ну нихрена себе извраааат!" (с)
      Ответить
      • Угум, именно так. Сакральный смысл такого подхода для меня то же остался тайной
        Ответить
    • >ass_id
      ID жопы. :) Знаю-знаю, уровень школы. :)
      Ответить
    • ахуеть 0_о
      Ответить

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