On Jul 16, 2:53 pm, Ranting Rick <rantingrickjohn...@gmail.com> wrote: > "if obj" is in essence doing "if bool(obj)" behind the scenes. My > question is: Why hide such valuable information from the reader?
If @decorator is in essence doing "function = decorator(function)" behind the scenes, why hide that? If classes are just syntactic sugar for dicts of functions, why hide that? > It's > obvious that "if bool(obj)" will return a boolean; whereas "if obj" is > ambiguous. It's only ambiguous if you're the sort of idiot who believes every language should conform to their a priori expectations. The behaviour is _documented and standard_, so it's in no way ambiguous unless someone has actively failed to do _their_ part and _educate themselves_: http://docs.python.org/library/stdtypes.html#truth-value-testing > If the multitudes of misunderstandings from "if obj" on this list have > not convinced you yet By that argument, _every_ Python feature that is misunderstood should be modified to meet the expectations of those who have refused to understand the language. In which case, why even bother having different languages with different ways of doing...oh wait, I'm talking to the monoculture king. Forget that line of reasoning. Also: citation or STFU. Provide links to 3 threads from the last month that have revolved around misunderstanding of truth values. > > > As far as I know, the only use of having a polymorphic boolean > > > conversion is reducing the amount of typing we do. > > > The same could be said about *every* polymorphic function. > > For which "bool" IS! Yes. That was Steven's point, which you missed in all of your usual mouth frothing. -- http://mail.python.org/mailman/listinfo/python-list