Add some additional comments based on feedback from Antoine and Victor.

This commit is contained in:
Barry Warsaw 2011-11-14 10:58:00 -05:00
parent e459ae2a03
commit 5e7219501d
1 changed files with 17 additions and 2 deletions

View File

@ -95,7 +95,10 @@ Python 3's standard string type is a unicode, and Python 3 adds a
bytes type, but critically, no automatic coercion between bytes and
unicodes is provided. Thus, the core interpreter, its I/O libraries,
module names, etc. are clear in their distinction between unicode
strings and bytes. This clarity is often a source of difficulty in
strings and bytes. Python 3's unicode support even extends to the
filesystem, so that non-ASCII file names are natively supported.
This string/bytes clarity is often a source of difficulty in
transitioning existing code to Python 3, because many third party
libraries and applications are themselves ambiguous in this
distinction. Once migrated though, most `UnicodeError`s can be
@ -114,6 +117,18 @@ In addition, integer division now produces floating point numbers for
non-integer results.
Classes
-------
Python 2 has two core class hierarchies, often called *classic
classes* and *new-style classes*. The latter allow for such things as
inheriting from the built-in basic types. However, confusion and
inconsistencies between the two class types has led Python 3 to drop
classic classes. Now all classes in Python 3 are *new-style*
(although that's a misnomer now). There is no need to inherit from
``object`` or set the default metatype to enable them.
Multiple spellings
------------------
@ -128,7 +143,7 @@ Imports
-------
In Python 3, star imports (e.g. ``from x import *``) are only
premitted in module level code. Also, only absolute imports are
permitted in module level code. Also, only absolute imports are
supported.
Also, some areas of the standard library have been reorganized to make