Other Built-in Types
The interpreter supports several other kinds of objects. Most of these support only one or two operations.
Modules
The only special operation on a module is attribute access:
m
.name, where
m is a module and name
accesses a name defined in m ’s
symbol table. The import statement is not,
strictly speaking, an operation on a module object;
import
foo doesn’t
require a module object named foo to exist, rather
it requires an (external) definition for a module named
foo somewhere.
A special member of every module is __dict__.
This is the dictionary containing the module’s symbol table.
Modifying this dictionary changes the module’s symbol table,
but direct assignment to the __dict__ attribute
isn’t possible (i.e., you can write m.__dict_
_['a']
=
1, which
defines m.a to be 1, but you can’t write
m.__dict__
=
{}.
Modules built into the interpreter are written like this:
<module
'sys'
(built-in)>. If loaded from a file, they are
written as <module
'os'
from
'/usr/local/lib/python1.5/os.pyc'>.
Classes and class instances
See Chapters 3 and 7 of the Python reference manual.
Functions
Function objects are created by function definitions. The only
operation on a function object is to call it:
func(argument-list).
There are really two flavors of function objects, built-in functions and user-defined functions. Both support the same operation (to call the function), but the implementation is different, hence the different object types.
The implementation adds two special read-only ...