SF bug #652888: bad documentation for the "type" builtin

Clarified that not all types are included.  The OP was looking for a
StaticMethodType.

Also, added a note and example suggesting the use of int,str, etc.
instead of IntType, StrType, etc.

Renamed the crummy variable name in the example from "list" to "mylist".
This commit is contained in:
Raymond Hettinger 2003-01-10 09:33:08 +00:00
parent 114713d194
commit 6fe1299b09
1 changed files with 22 additions and 6 deletions

View File

@ -1,13 +1,15 @@
\section{\module{types} --- \section{\module{types} ---
Names for all built-in types} Names for built-in types}
\declaremodule{standard}{types} \declaremodule{standard}{types}
\modulesynopsis{Names for all built-in types.} \modulesynopsis{Names for built-in types.}
This module defines names for all object types that are used by the This module defines names for types some object types that are used by
standard Python interpreter, but not for the types defined by various the standard Python interpreter, but not for the types defined by various
extension modules. It is safe to use \samp{from types import *} --- extension modules. Also, it does not include some of the types that
arise during processing such the \code{listiterator} type.
It is safe to use \samp{from types import *} ---
the module does not export any names besides the ones listed here. the module does not export any names besides the ones listed here.
New names exported by future versions of this module will all end in New names exported by future versions of this module will all end in
\samp{Type}. \samp{Type}.
@ -17,8 +19,22 @@ their argument types, like the following:
\begin{verbatim} \begin{verbatim}
from types import * from types import *
def delete(list, item): def delete(mylist, item):
if type(item) is IntType: if type(item) is IntType:
del mylist[item]
else:
mylist.remove(item)
\end{verbatim}
Starting in Python 2.2, built-in factory functions such as
\function{int()} and \function{str()} are also names for the
corresponding types. This is now the preferred way to access
the type instead of using the \module{types} module. Accordingly,
the example above should be written as follows:
\begin{verbatim}
def delete(mylist, item):
if isinstance(item, int):
del list[item] del list[item]
else: else:
list.remove(item) list.remove(item)