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

    −354.7

    1. 1
    2. 2
    def _ne_ (self, cmp):
        return True if (self < cmp or self > cmp) else False

    Сравнение объектов

    Запостил: guest, 03 Июля 2009

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

    • dmzakh:
      Хм. С одной стороны, код
      return True if (self < cmp or self > cmp) else False

      эквивалентен
      return self < cmp or self > cmp

      или даже
      return self != cmp

      Но, с другой стороны, воспользовавшись больным воображением, можно взглянуть на код "ширьше" и предположить, что какие-то операции __lt__, __gt__, __ne__ хитро перегружены и возвращают вовсе не булевское значение, благо python это позволяет. И происходит здесь вовсе не сравнение больше/меньше, а нечто таинственное :) А программисту очень хотелось, чтоб функция _ne_() вернула гарантированно True или False. :)
      Правда, в этом случае, возникает сомнение в обоснованности такой перегрузки. ИМХО, перегрузка операций, особенно в "умелых" руках, может сильно запутать код.
      Ответить
    • return bool(self != cmp) в таком случае
      Ответить
    • http://docs.python.org/library/operator.html
      Ответить

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