GNU Info

Info Node: (python2.1-tut.info)Classes

(python2.1-tut.info)Classes


Next: What Now? Prev: Errors and Exceptions Up: Top
Enter node , (file) or (file)node

Classes
*******

Python's class mechanism adds classes to the language with a minimum of
new syntax and semantics.  It is a mixture of the class mechanisms
found in C++ and Modula-3.  As is true for modules, classes in Python
do not put an absolute barrier between definition and user, but rather
rely on the politeness of the user not to "break into the definition."
The most important features of classes are retained with full power,
however: the class inheritance mechanism allows multiple base classes,
a derived class can override any methods of its base class or classes,
a method can call the method of a base class with the same name.
Objects can contain an arbitrary amount of private data.

In C++ terminology, all class members (including the data members) are
_public_, and all member functions are _virtual_.  There are no special
constructors or destructors.  As in Modula-3, there are no shorthands
for referencing the object's members from its methods: the method
function is declared with an explicit first argument representing the
object, which is provided implicitly by the call.  As in Smalltalk,
classes themselves are objects, albeit in the wider sense of the word:
in Python, all data types are objects.  This provides semantics for
importing and renaming.  But, just like in C++ or Modula-3, built-in
types cannot be used as base classes for extension by the user.  Also,
like in C++ but unlike in Modula-3, most built-in operators with
special syntax (arithmetic operators, subscripting etc.) can be
redefined for class instances.

A Word About Terminology
Python Scopes and Name Spaces
A First Look at Classes
Random Remarks
Inheritance
Private Variables
Odds and Ends

automatically generated by info2www version 1.2.2.9