myths about python 3

Daniel Fetchinson fetchinson at googlemail.com
Wed Jan 27 09:22:39 EST 2010


>> Hi folks,
>>
>> I was going to write this post for a while because all sorts of myths
>> periodically come up on this list about python 3. I don't think the
>> posters mean to spread false information on purpose, they simply are
>> not aware of the facts.
>>
>> My list is surely incomplete, please feel free to post your favorite
>> misconception about python 3 that people periodically state, claim or
>> ask about.
>>
>> 1. Print statement/function creates incompatibility between 2.x and 3.x!
>>
>> Certainly false or misleading, if one uses 2.6 and 3.x the
>> incompatibility is not there. Print as a function works in 2.6:
>>
>> Python 2.6.2 (r262:71600, Aug 21 2009, 12:23:57)
>> [GCC 4.4.1 20090818 (Red Hat 4.4.1-6)] on linux2
>> Type "help", "copyright", "credits" or "license" for more information.
>>>>> print( 'hello' )
>> hello
>>>>> print 'hello'
>> hello
>>>>>
>>
>>
>> 2. Integer division creates incompatibility between 2.x and 3.x!
>>
>> Again false or misleading, because one can get the 3.x behavior with 2.6:
>>
>> Python 2.6.2 (r262:71600, Aug 21 2009, 12:23:57)
>> [GCC 4.4.1 20090818 (Red Hat 4.4.1-6)] on linux2
>> Type "help", "copyright", "credits" or "license" for more information.
>>>>> 6/5
>> 1
>>>>> from __future__ import division
>>>>> 6/5
>> 1.2
>>
>>
>> Please feel free to post your favorite false or misleading claim about
>> python 3!
>
> Well, I see two false or misleading claims just above - namely that
> the two claims above are false or misleading. They tell just half of
> the story, and that half is indeed easy. A Python 3 program can be
> unchanged (in the case of print) or with only trivial modifications
> (in the case of integer division) be made to run on Python 2.6.

Okay, so we agree that as long as print and integer division is
concerned, a program can easily be written that runs on both 2.6 and
3.x.

My statements are exactly this, so I don't understand why you disagree.

> The other way around this is _not_ the case.

What do you mean?

> To say that two things are
> compatible if one can be used for the other, but the other not for the
> first, is false or misleading.

I'm not sure what you mean here. Maybe I didn't make myself clear
enough, but what I mean is this: as long as print and integer division
is concerned, it is trivial to write code that runs on both 2.6 and
3.x. Hence if someone wants to highlight incompatibility (which surely
exists) between 2.6 and 3.x he/she has to look elsewhere.

Cheers,
Daniel

-- 
Psss, psss, put it down! - http://www.cafepress.com/putitdown



More information about the Python-list mailing list