[Reinhold Birkenfeld Fri, Dec 10, 2004 at 08:42:10PM +0100] > holger krekel wrote: > > class Connection(object): > > def __init__(self, **kw): > > for name in kw: > > assert name in ('good', 'badauth', 'noserver'), name > > setattr(self, name, kw[name]) > > > > def get_connection(): > > if tcp_conn(): > > if server_allows_conn(): > > return Connection(good=True) > > else: > > return Connection(badauth=True) > > else: > > return Connection(noserver=True) > > That's evil, because "if conn.good" raises an AttributeError instead of > evaluating to False if the connection is not good. You would have to > inizialize all three attributes in every construction of a Connection > object.
Ups, you are right of course. I somehow managed to delete the line ... class Connection(object): good = badauth = noserver = False thanks for pointing it out. holger -- http://mail.python.org/mailman/listinfo/python-list