On Jan 27, 8:42 am, Lie Ryan <lie.1...@gmail.com> wrote: > On 01/28/10 01:32, Jean-Michel Pichavant wrote: > > > > > 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 > > from __future__ import print_function > > if print: > print('Hello') > > def myPrint(*args): > for arg in args: > sys.stdout.write(str(arg)) > > print = myPrint
I can't say that I am that keen on 2.6 all my favorite graphics libraries are in 2.5. If there was money involved I would probably think y'all were doing it to stay employed so I am thinking I should wait till 3.4 and 3.5 to get involved with this but much sooner than python 4.0. I did notice that I had trouble compiling a library because some version of microsoft c is no longer available...sort of forced migration. ______________________________________ http://dextracker.blogspot.com/ -- http://mail.python.org/mailman/listinfo/python-list