On Tuesday, July 17, 2012 8:35:09 PM UTC-5, alex23 wrote: > On Jul 17, 6:23 pm, Andrew Berg <bahamutzero8...@gmail.com> wrote: > > On 7/17/2012 2:08 AM, Steven D'Aprano wrote: > > > The default behaviour is that every object is something, hence true-like, > > > unless explicitly coded to be treated as false-like. Since both loggers > > > and functions are objects, they are true-like unless the default is > > > overridden. > > > > I am aware of the default behavior, but the reason for it still eludes me. > > Because it makes it simple to distinguish between having an object and > not having one without having to explicitly test for it each time.
That's a strange thing to say when you go on to provide an example that tests the validity of the object "each and every time": > > db = connect("my:db") # or None if the connection failed > if db: > <do something> > I find that usage to be incredibly intuitive. And i find it to be incredibly asinine. Consider this: if connect("my:db") as db: <do something> No need to make a call and then test for the validity of the call when you can do both simultaneously AND intuitively. *school-bell-rings* -- http://mail.python.org/mailman/listinfo/python-list