if the else short form

John Nagle nagle at animats.com
Fri Oct 1 14:23:25 EDT 2010


On 10/1/2010 12:42 AM, bruno.desthuilliers at gmail.com wrote:
> On 30 sep, 19:22, Andreas Waldenburger<use... at geekmail.INVALID>
> wrote:
>> On Thu, 30 Sep 2010 03:42:29 -0700 (PDT)
>>
>> "bruno.desthuilli... at gmail.com"<bruno.desthuilli... at gmail.com>  wrote:
>>> On 29 sep, 19:20, Seebs<usenet-nos... at seebs.net>  wrote:
>>>> On 2010-09-29, Tracubik<affdfsdfds... at b.com>  wrote:
>>>>> button = gtk.Button(("False,", "True,")[fill==True])
>>
>>>> Oh, what a nasty idiom.
>>
>>> Well, it's not very different from dict-based dispatch , which is the
>>> core of OO polymorphic dispatch in quite a few dynamic OOPLs.
>>
>>> Anyway, it's a common Python idiom and one that's not specially hard
>>> to grasp so I don't see any legibility problem here.
>>
>> But it does violate the "explicit is better than implicit" tenet, don't
>> you think?
>
> Why so ? The doc clearly states that booleans are integers with True
> == 1 and False == 0, so there's nothing implicit here.

     Python "bool" values are NOT integers.  They can be coerced to
integers for historical reasons.  But "str(True)" is "True".

     The above could be better written as

	button = gtk.Button(str(fill))

				John Nagle




More information about the Python-list mailing list