Daniel Fetchinson wrote:
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
How would you write in python 2.6
if print:
print('Hello')
---
def myPrint(*args):
for arg in args:
sys.stdout.write(str(arg))
print = myPrint
JM
--
http://mail.python.org/mailman/listinfo/python-list