Null pattern

George Sakkis george.sakkis at gmail.com
Thu Jun 19 20:31:50 EDT 2008


I'd like to extend the Null pattern from
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/68205 to
handle special methods (e.g. Null[3], del Null['key'], Null+1) but
it's not always clear how to do it while keeping the behavior
consistent and intuitive.

For example, consider the container methods __len__, __iter__ and
__contains__. The obvious choice for a null container is an empty one.
When taking  __getitem__ into account though, the behaviour looks
inconsistent:
    >>> Null[3]
    Null
    >>> len(Null)
    0

Another group of methods is rich comparisons: Should Null > x be
allowed and if so, what it should return ?

Then again, perhaps Null is an inherently domain-specific notion and
there are no general answers to such questions, in which case it
doesn't make sense trying to define an all-purpose Null object.

George



More information about the Python-list mailing list