GNU Info

Info Node: (python2.1-tut.info)A Word About Terminology

(python2.1-tut.info)A Word About Terminology


Next: Python Scopes and Name Spaces Prev: Classes Up: Classes
Enter node , (file) or (file)node

A Word About Terminology
========================

Lacking universally accepted terminology to talk about classes, I will
make occasional use of Smalltalk and C++ terms.  (I would use Modula-3
terms, since its object-oriented semantics are closer to those of
Python than C++, but I expect that few readers have heard of it.)

I also have to warn you that there's a terminological pitfall for
object-oriented readers: the word "object" in Python does not
necessarily mean a class instance.  Like C++ and Modula-3, and unlike
Smalltalk, not all types in Python are classes: the basic built-in
types like integers and lists are not, and even somewhat more exotic
types like files aren't.  However, _all_ Python types share a little
bit of common semantics that is best described by using the word object.

Objects have individuality, and multiple names (in multiple scopes) can
be bound to the same object.  This is known as aliasing in other
languages.  This is usually not appreciated on a first glance at
Python, and can be safely ignored when dealing with immutable basic
types (numbers, strings, tuples).  However, aliasing has an (intended!)
effect on the semantics of Python code involving mutable objects such
as lists, dictionaries, and most types representing entities outside
the program (files, windows, etc.).  This is usually used to the
benefit of the program, since aliases behave like pointers in some
respects.  For example, passing an object is cheap since only a pointer
is passed by the implementation; and if a function modifies an object
passed as an argument, the caller will see the change -- this obviates
the need for two different argument passing mechanisms as in Pascal.


automatically generated by info2www version 1.2.2.9