In python 2.6.5, an instance of dbm does not have a __nonzero__ or a __len__ method, so why does it evaluate false as a boolean?
>>> a = dbm.open( 'foo', 'c' ) >>> if a: print 'true' ... >>>
According to the python documentation one of the types of values that is considered false is
any empty mapping, for example,
{}
.
Since a dbm
object is a mapping and a new instance is empty, it is therefore false.