mirror of https://github.com/python/cpython
148 lines
3.4 KiB
Plaintext
148 lines
3.4 KiB
Plaintext
+++++++++++
|
|
Python News
|
|
+++++++++++
|
|
|
|
(editors: check NEWS.help for information about editing NEWS using ReST.)
|
|
|
|
What's New in Python 3000?
|
|
==========================
|
|
|
|
*Release date: XX-XXX-200X*
|
|
|
|
TO DO
|
|
-----
|
|
|
|
- See PEP 3000, 3100.
|
|
|
|
- Weed really old/weird stuff from the library.
|
|
|
|
- Unify range() and xrange().
|
|
|
|
- Rework the standard I/O library to use bytes for binary files.
|
|
|
|
- Make strings all Unicode.
|
|
|
|
- Get rid of various compatibility-related flags (e.g. division flags).
|
|
|
|
|
|
Core and Builtins
|
|
-----------------
|
|
|
|
- Objects listed in an 'except' clause must inherit from BaseException.
|
|
|
|
- PEP 3106: dict.iterkeys(), .iteritems(), .itervalues() are now gone;
|
|
and .keys(), .items(), .values() return dict views.
|
|
|
|
- PEP 3105: print is now a function. Also (not in the PEP) the
|
|
'softspace' attribute of files is now gone (since print() doesn't use
|
|
it). A side effect of this change is that you can get incomplete
|
|
output lines in interactive sessions:
|
|
|
|
>>> print(42, end="")
|
|
42>>>
|
|
|
|
We may be able to fix this after the I/O library rewrite.
|
|
|
|
- PEP 3102: keyword-only arguments.
|
|
|
|
- Int/Long unification is complete. The 'long' built-in type
|
|
and literals with trailing 'L' or 'l' have been removed.
|
|
Performance may be sub-optimal (haven't really benchmarked).
|
|
|
|
- 'except E, V' must now be spelled as 'except E as V' and deletes V
|
|
at the end of the except clause; V must be a simple name.
|
|
|
|
- Added function annotations per PEP 3107.
|
|
|
|
- Moved intern() to sys.intern().
|
|
|
|
- exec is now a function.
|
|
|
|
- Renamed nb_nonzero to nb_bool and __nonzero__ to __bool__.
|
|
|
|
- Classic classes are a thing of the past. All classes are new style.
|
|
|
|
- Exceptions *must* derive from BaseException.
|
|
|
|
- Integer division always returns a float. The -Q option is no more.
|
|
All the following are gone:
|
|
* PyNumber_Divide and PyNumber_InPlaceDivide
|
|
* __div__, __rdiv__, and __idiv__
|
|
* nb_divide, nb_inplace_divide
|
|
* operator.div, operator.idiv, operator.__div__, operator.__idiv__
|
|
(Only __truediv__ and __floordiv__ remain, not sure how to handle them
|
|
if we want to re-use __div__ and friends. If we do, it will make
|
|
it harder to write code for both 2.x and 3.x.)
|
|
|
|
- 'as' and 'with' are keywords.
|
|
|
|
- Absolute import is the default behavior for 'import foo' etc.
|
|
|
|
- Removed support for syntax:
|
|
backticks (`x`), <>
|
|
|
|
- Removed these Python builtins:
|
|
apply(), coerce(), input(), raw_input()
|
|
|
|
- Removed these Python methods:
|
|
{}.has_key
|
|
|
|
- Removed these Python slots:
|
|
__coerce__, __div__, __idiv__, __rdiv__
|
|
|
|
- Removed these attributes from Python modules:
|
|
* operator module: div, idiv, __div__, __idiv__
|
|
|
|
- Removed these C APIs:
|
|
PyNumber_Coerce(), PyNumber_CoerceEx()
|
|
|
|
- Removed these C slots/fields:
|
|
nb_divide, nb_inplace_divide
|
|
|
|
- Removed these macros:
|
|
staticforward, statichere, PyArg_GetInt, PyArg_NoArgs
|
|
|
|
- Removed these typedefs:
|
|
intargfunc, intintargfunc, intobjargproc, intintobjargproc,
|
|
getreadbufferproc, getwritebufferproc, getsegcountproc, getcharbufferproc
|
|
|
|
- Removed these opcodes:
|
|
BINARY_DIVIDE, INPLACE_DIVIDE, UNARY_CONVERT
|
|
|
|
- zip returns an iterator
|
|
|
|
- Additions:
|
|
set literals, ellipsis literal
|
|
|
|
|
|
Extension Modules
|
|
-----------------
|
|
|
|
Library
|
|
-------
|
|
|
|
- Removed all traces of the sets module.
|
|
|
|
Build
|
|
-----
|
|
|
|
C API
|
|
-----
|
|
|
|
Tests
|
|
-----
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
Mac
|
|
---
|
|
|
|
New platforms
|
|
-------------
|
|
|
|
Tools/Demos
|
|
-----------
|
|
|
|
**(For information about older versions, consult the HISTORY file.)**
|