class Foo:
def __nonzero__(self): return False
__bool__ = __nonzero__ # this is for python3
In [254]: if Foo():
.....: print 'Yeah'
.....: else: print 'Nay'
.....:
Nay
Или, если вы хотите быть ультрапортативным, вы можете определить только __len__
, который будет иметь одинаковый эффект на обоих языках, но имеет (потенциальный) недостаток, который подразумевает, что ваш объект имеет значимую меру длины (чего не может).
Это будет работать для любого экземпляра, в зависимости от фактической логики, которую вы указали в методе.