diff --git a/pep-0404.txt b/pep-0404.txt index 977f897ee..81158b502 100644 --- a/pep-0404.txt +++ b/pep-0404.txt @@ -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