morfizm (morfizm) wrote,
morfizm
morfizm

Python boolean function danger

class number(int):
    def is_odd(self):
        return self % 2 == 1

>>> if number(5).is_odd(): print '5 is odd'
...
5 is odd

>>> if number(6).is_odd(): print '6 is odd'
...

>>> if number(5).is_odd: print '5 is odd'
...
5 is odd

>>> if number(6).is_odd: print '6 is odd'
...
6 is odd


Upd.: got a good solution. Use properties:

class number(int):
    @property
    def is_odd(self):
        return self % 2 == 1

print number(6).is_odd
print number(6).is_odd()

the latter call will produce
TypeError: 'bool' object is not callable
Tags: software development
Subscribe

  • Дети и инвестирование

    (Хоть и личная тема, пощу в public, чтобы легче было собрать полезный фидбек) Сегодня за прогулкой соединились воедино сразу несколько посылок в…

  • 27" мониторы - 2

    Я тут про мониторы писал. 1. Для юзера allochkag подтверждаю, что "надо брать Делл S2721D за $200 и брать вот этот monitor arm за…

  • Как агрегировать точечную информацию?

    Из всех неприятных вопросов больше всего в жизни я ненавижу вопросы про самочувствие, вроде "насколько сильно у тебя болела рука в этом месяце?".…

  • 24 comments
  • 24 comments

Comments for this post were locked by the author

  • Дети и инвестирование

    (Хоть и личная тема, пощу в public, чтобы легче было собрать полезный фидбек) Сегодня за прогулкой соединились воедино сразу несколько посылок в…

  • 27" мониторы - 2

    Я тут про мониторы писал. 1. Для юзера allochkag подтверждаю, что "надо брать Делл S2721D за $200 и брать вот этот monitor arm за…

  • Как агрегировать точечную информацию?

    Из всех неприятных вопросов больше всего в жизни я ненавижу вопросы про самочувствие, вроде "насколько сильно у тебя болела рука в этом месяце?".…