Python paradigms

Oleg Broytmann phd at
Sun Apr 9 11:12:30 EDT 2000

On Sun, 9 Apr 2000, Robert W. Cunningham wrote:
>  blah = (((test and [true]) or [false])[0])             # blah = (test ?
> true : false)
> Works for me!  Only if I have a good reason to suspect a problem in this
> particular line of code will I have to look past the comment.

   There is no problem in this particular line, but you'll have plenty of
them if you'd try to use this paradigm:

   blah = ((foo() and [poo()]) or [boo()])[0]

   In C, "foo() ? poo() : boo()" will not call boo() if foo() returns true;
but in Python, you'll have a side-effect of calling boo() even if foo()
returns true - what is wrong, usually.

> Are there ANY Python programmers who don't also know at least this much C?

   I am. I came to Python after 10 years of Borland Pascal and no C. Firest
I tryied Perl, but was very unsuccessful writing my programs; then tryied
Python - and voila! - I use Python for over 4 years and don't see a need to
change anything! :)
   I learned C after Python ('cause I switched from DOS to UNIX the same
time I turned from BPascal to Perl or Python). And still don't know much C.

Oleg.            (All opinions are mine and not of my employer)
    Oleg Broytmann      Foundation for Effective Policies      phd at
           Programmers don't die, they just GOSUB without RETURN.

More information about the Python-list mailing list