Website hosting and domain hosting service by

 Back to Index

21 Porting to Python 2.3

This section lists previously described changes that may require changes to your code:


  • yield is now always a keyword; if it's used as a variable name in your code, a different name must be chosen.


  • For strings X and Y, X in Y now works if X is more than one character long.


  • The int() type constructor will now return a long integer instead of raising an OverflowError when a string or floating-point number is too large to fit into an integer.


  • If you have Unicode strings that contain 8-bit characters, you must declare the file's encoding (UTF-8, Latin-1, or whatever) by adding a comment to the top of the file. See section 3 for more information.


  • Calling Tcl methods through _tkinter no longer returns only strings. Instead, if Tcl returns other objects those objects are converted to their Python equivalent, if one exists, or wrapped with a _tkinter.Tcl_Obj object if no Python equivalent exists.


  • Large octal and hex literals such as 0xffffffff now trigger a FutureWarning. Currently they're stored as 32-bit numbers and result in a negative value, but in Python 2.4 they'll become positive long integers.

    There are a few ways to fix this warning. If you really need a positive number, just add an "L" to the end of the literal. If you're trying to get a 32-bit integer with low bits set and have previously used an expression such as  (1 31), it's probably clearest to start with all bits set and clear the desired upper bits. For example, to clear just the top bit (bit 31), you could write 0xffffffffL &~(1L31).


  • You can no longer disable assertions by assigning to __debug__.


  • The Distutils setup() function has gained various new keyword arguments such as depends. Old versions of the Distutils will abort if passed unknown keywords. A solution is to check for the presence of the new get_distutil_options() function in your and only uses the new keywords with a version of the Distutils that supports them:


    from distutils import core
    kw = {'sources': 'foo.c', ...}
    if hasattr(core, 'get_distutil_options'):
        kw['depends'] = ['foo.h']
    ext = Extension(**kw)


  • Using None as a variable name will now result in a SyntaxWarning warning.


  • Names of extension types defined by the modules included with Python now contain the module and a "." in front of the type name.




2002-2004 Website Hosting Service


Disclaimer: This documentation is provided only for the benefits of our hosting customers.
For authoritative source of the documentation, please refer to


Register domain name by Cheap Domain Registrar with free domain hosting services

Cheap domain name - Cheap domain name registration service including free domain hosting services offers domain name registration, domain name transfer and domain search services