Pythonにはオブジェクトのブール値があります。クラスに__len__
メソッドがある場合、__len__()
が0を返すようなすべてのインスタンスはブール値False
として評価されます(たとえば、空のリスト)。実際にPythonのオブジェクトのブール値
それは論理式で表示された場合は、すべての反復可能な、空のカスタムオブジェクトはFalse
として評価されます。
は今、私は属性bar
でクラスfoo
があるとします。 、と言う、それはそうTrue if bar % 2 == 0
とFalse
に評価されるように、どのように私は、その真理値を定義することができますか?例えば
:
myfoo = foo()
myfoo.bar = 3
def a(myfoo):
if foo:
print "spam"
else:
print "eggs"
ので、a(myfoo)
は"eggs"
を印刷しなければなりません。
も参照してください: '__nonzero __()'だけでなく> = 3.0 Pythonでウィル '__nonzero__'仕事 –