Larry Hastings added the comment:

I think these shouldn't be "int", they should be "bool".  "bool" will allow you 
to use a default of False.  It maps to the "p" format unit, which was new in 
3.3.

Back before 3.3, when someone wanted a boolean they just used "i", and relied 
on the fact that True turned into 1 and False turned into 0.  (Even more so 
before 2.2, when we didn't even have True and False.)  In theory it's a 
semantic change, because "i" only accepts ints (and True/False), whereas "p" 
will accept floats, lists, tuples, dicts, sets... anything with a __bool__.  
But the intent of code like this is clear, it's only interested in true/false.  
And Python has well-established rules for what is considered a true and false.  
So I feel like this change is an improvement.

----------
resolution:  -> wont fix
stage:  -> committed/rejected
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue20282>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to