Pep 3105: the end of print?

Sam free.condiments at gmail.com
Fri Feb 16 17:31:04 EST 2007


On 16 Feb 2007 13:48:29 -0800, Klaas <mike.klaas at gmail.com> wrote:
> 3. in your code:
> try:
>     from compat26 import print2
> except (ImportError, SyntaxError):
>     # python 3.0
>     print2 = print

Python 2.5c1 (r25c1:51305, Aug 17 2006, 10:41:11) [MSC v.1310 32 bit
(Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> try:
   from compat26 import print2
except (ImportError, SyntaxError):
   # python 3.0
   print2 = print
SyntaxError: invalid syntax
>>> try:
   pass
except (ImportError, SyntaxError):
   # python 3.0
   print2 = print
SyntaxError: invalid syntax

Any and all aliasing must happen in compat26.py. My suggested solution is this:

#_compat30.py
print2 = print

#compat.py
try:
     from _compat30 import print2
except SyntaxErorr, ImportError):
    def print2():
        ....

--Sam



More information about the Python-list mailing list