On Mon, 18 Sep 2017 07:37 am, Rick Johnson wrote: > Consider the collowing code: > > if bool(someObject) == True: > # Do something > > Yes, from a "byte-code perspective", this source code is > superfluous,
This is bad code because it is bad SOURCE CODE. The byte code is irrelevant. You wouldn't write this: if (len(mystring) == 1) == True: because that's just stupid, the equality comparison returns a bool so testing against True is redundant and adds no clarity, just noise. Nor would you write: if (numchars > 2) == True: because the greater than comparison returns a bool and so testing against True is redundant and adds no clarity, just noise. And you wouldn't write: if (argument is None) == True: because the `is` comparison returns a bool and testing it against True is redundant and adds no clarity, just noise. Nor would you write: condition = some_string.startswith('x') == True result = process(args, flag=(condition == True)) because in both lines you already have a bool and comparing a bool to True is just redundant and adds noise. And surely you wouldn't write: results = sorted(values, reverse=(False==True)) Or would you? Maybe you would do all these things, in which case you're an even worse programmer than I thought. Your example of if bool(someObject) == True: is no different from any of these examples. bool(someObject) returns a bool; comparing it to True adds redundancy and noise, not clarity. Your insistence on adding the entirely superfluous, unnecessary and distracting "== True" at the end of something which is already True or False demonstrates a lack of fluency in the language and difficulty in reasoning about boolean logic. -- Steve “Cheer up,” they said, “things could be worse.” So I cheered up, and sure enough, things got worse. -- https://mail.python.org/mailman/listinfo/python-list