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

    −95

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    def _lang_score(l):
        score = 0
        if l.language in user_langs:
            score += 100
        if l.is_complete:
            score += 100    
        elif l.is_dependent():
            score += l.percent_done
        score += ord('c'.decode('utf-8')) / 10.0    
        return score
    
    def _cmp_langs(a,b):
        return cmp(_lang_score(b), _lang_score(a))

    Функция сравнения для сортировки объектов. Вроде все хорошо, но не понятно зачем 9-я строка.

    Запостил: alerion, 06 Октября 2011

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

    • а так нельзя?
      return (l.language in user_langs)*100+l.is_complete*100+l.is_d ependent()*l.percent_done;
      Ответить
    • А используется ли _lang_score ещё где-нибудь в коде?

      Кстати, _cmp_langs, скорее всего, ненужна.
      Ответить
    • if l.language in user_langs:

      Хмммм. self перед user_langs нет, как global она тоже не объявлена... эта функция объявлена внутри другой? если нет, я не понимаю как это работает.
      Ответить
      • Где здесь self?
        Ответить
      • Вообще запостил из-за этого `score += ord('c'.decode('utf-8')) / 10.0 `. Это внутри другой функции, так что работает.
        Ответить
        • Ну это вообще полный WTF, я понятия не имею зачем так извращаться.
          Ответить
        • а комментарий вы подставили или он изначально был? потому как это строка и троллфэйс прогера я себе представляю, а вот с комментарием уже хз
          Ответить
          • Никаких комментариев не было. Ну вроде как и так понятно зачем это. Там сразу sort идет. Пока жду ответ от автора зачем `ord('c'.decode('utf-8')) / 10.0` :)
            Ответить
      • global нужен только для записи в глобальные ("модульные") переменные. Читать можно и так.
        Ответить

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