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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 alerion, (Updated )

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

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

Из-за тебя ушел bormand, guest!

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


    8