Boolean comparison & PEP8
On 28/07/2019 19.04, Chris Angelico wrote:
> On Mon, Jul 29, 2019 at 9:48 AM Michael Torrie <torriem at gmail.com> wrote:
>> On 7/28/19 5:55 AM, Jonathan Moules wrote:
>>> But this appears to be explicitly called out as being "Worse" in PEP8:
>>> Don't compare boolean values to True or False using ==.
>>> Yes: if greeting:
>>> No: if greeting == True:
>>> Worse: if greeting is True:
>> Yet the recommended solution to the problem of wanting a default
>> argument of an empty list is something like this:
>> def foo(bar=False);
>> if bar is False:
>> bar = 
>> Clearly in this case the expression "not bar" would be incorrect.
> This is a fairly unusual case, though. More commonly, the default
> would be None, not False, and "if bar is None:" is extremely well
> known and idiomatic.
That's certainly how I would have done it until I read your post. But
reading it immediately raised the question of why not:
def foo( bar= ):
print( "Pretty short" )
print( bar )
Seems to work just fine.
Michael F. Stemper