Reorganize: move stuff from core language to atomic types, add Influencing PEPs
section.
This commit is contained in:
parent
81eabf7a0d
commit
9e3b21db47
62
pep-3000.txt
62
pep-3000.txt
|
@ -38,18 +38,22 @@ of doing things. A general principle of the design will be that one
|
|||
obvious way of doing something is enough. [1]_
|
||||
|
||||
|
||||
Influencing PEPs
|
||||
================
|
||||
|
||||
* PEP 238 (Changing the Division Operator) [#pep238]_
|
||||
* PEP 328 (Imports: Multi-Line and Absolute/Relative) [#pep328]_
|
||||
* PEP 343 (The "with" Statement) [#pep343]_
|
||||
* PEP 352 (Required Superclass for Exceptions) [#pep352]_
|
||||
|
||||
|
||||
Core language
|
||||
=============
|
||||
|
||||
* Remove distinction between int and long types [1]_
|
||||
* True division becomes default behavior [10]_
|
||||
* Make all strings be Unicode, and have a separate bytes() type [1]_
|
||||
* ``exec`` as a statement is not worth it -- make it a function
|
||||
* Add optional declarations for static typing [11]_
|
||||
* Support only new-style classes; classic classes will be gone [1]_
|
||||
* Return iterators instead of lists where appropriate for atomic type methods
|
||||
(e.g. ``dict.keys()``, ``dict.values()``, ``dict.items()``, etc.)
|
||||
(Do we keep iter*() methods or remove them? I vote remove. -- nn)
|
||||
* Replace ``print`` by a function [16]_
|
||||
* Do something so you can catch multiple exceptions using ``except E1,
|
||||
E2, E3:``. Maybe use ``except E1, E2, E3 as err:`` if you want the
|
||||
|
@ -70,12 +74,13 @@ Core language
|
|||
be required for top-level packages.
|
||||
* Cleanup the Py_InitModule() variants {,3,4} (also import and parser APIs)
|
||||
* Cleanup the APIs exported in pythonrun, etc.
|
||||
* Fix (or remove) {}.setdefault() [21]_
|
||||
* Some expressions will require parentheses that didn't in 2.x:
|
||||
|
||||
- List comprehensions will require parentheses around the iterables.
|
||||
This will make list comprehensions more similar to generator comprehensions.
|
||||
[x for x in 1, 2] will need to be: [x for x in (1, 2)]
|
||||
- Lambdas will have to be parenthesized [23]_
|
||||
|
||||
* Builtin module init function names (PyMODINIT_FUNC) will be prefixed
|
||||
with _Py (or Py). Currently they aren't namespace safe since the names
|
||||
start with init.
|
||||
|
@ -95,9 +100,26 @@ To be removed:
|
|||
PySequence_In, PyEval_EvalFrame, PyEval_CallObject,
|
||||
_PyObject_Del, _PyObject_GC_Del, _PyObject_GC_Track, _PyObject_GC_UnTrack
|
||||
PyString_AsEncodedString, PyString_AsDecodedString
|
||||
PyArg_NoArgs, PyArg_GetInt
|
||||
PyArg_NoArgs, PyArg_GetInt, intargfunc, intintargfunc
|
||||
|
||||
|
||||
Atomic Types
|
||||
============
|
||||
|
||||
* Remove distinction between int and long types [1]_
|
||||
* Make all strings be Unicode, and have a separate bytes() type [1]_
|
||||
* Return iterators instead of lists where appropriate for atomic type methods
|
||||
(e.g. ``dict.keys()``, ``dict.values()``, ``dict.items()``, etc.)
|
||||
(Do we keep iter*() methods or remove them? I vote remove. -- nn)
|
||||
|
||||
To be removed:
|
||||
|
||||
* ``basestring.find()`` and ``basestring.rfind()``; use ``basestring.index()``
|
||||
or ``basestring.rindex()`` in a try/except block [15]_
|
||||
* ``file.xreadlines()`` method [17]_
|
||||
* ``dict.setdefault()`` [22]_
|
||||
* ``dict.has_key()`` method
|
||||
|
||||
typedefs: intargfunc, intintargfunc
|
||||
|
||||
Built-in Namespace
|
||||
==================
|
||||
|
@ -127,18 +149,6 @@ To be removed:
|
|||
* ``xrange()``: use ``range()`` instead [1]_
|
||||
|
||||
|
||||
Atomic Types
|
||||
============
|
||||
|
||||
To be removed:
|
||||
|
||||
* ``basestring.find()`` and ``basestring.rfind()``; use ``basestring.index()``
|
||||
or ``basestring.rindex()`` in a try/except block [15]_
|
||||
* ``file.xreadlines()`` method [17]_
|
||||
* ``dict.setdefault()`` [22]_
|
||||
* ``dict.has_key()`` method
|
||||
|
||||
|
||||
Standard library
|
||||
================
|
||||
|
||||
|
@ -253,6 +263,18 @@ References
|
|||
.. [23] PEP 308 ("Conditional Expressions")
|
||||
http://www.python.org/peps/pep-0308.html
|
||||
|
||||
.. [#pep238] PEP 238 (Changing the Division Operator)
|
||||
http://www.python.org/peps/pep-0238.html
|
||||
|
||||
.. [#pep328] PEP 328 (Imports: Multi-Line and Absolute/Relative)
|
||||
http://www.python.org/peps/pep-0328.html
|
||||
|
||||
.. [#pep343] PEP 343 (The "with" Statement)
|
||||
http://www.python.org/peps/pep-0343.html
|
||||
|
||||
.. [#pep352] PEP 352 (Required Superclass for Exceptions)
|
||||
http://www.python.org/peps/pep-0352.html
|
||||
|
||||
Copyright
|
||||
=========
|
||||
|
||||
|
|
Loading…
Reference in New Issue