Neal Becker wrote:
Want to switch __call__ behavior. Why doesn't this work? What is the correct way to write this?I think it's because X has already been constructed when __init__ is called, so __new__ is the place for your conditional code.class X (object): def __init__(self, i): if i == 0: def __call__ (self): return 0 else: def __call_ (self): return 1 x = X(0) x() TypeError: 'X' object is not callable
-- http://mail.python.org/mailman/listinfo/python-list