Types and Objects in Python
All the data stored in a Python program is built around the concept of an object. Objects include fundamental data types such as numbers, strings, lists, and dictionaries. It's also possible to create user-defined objects in the form of classes or extension types. This chapter describes the Python object model and provides an overview of the built-in data types. Chapter 4, "Operators and Expressions," further describes operators and expressions.
Terminology
Every piece of data stored in a program is an object. Each object has an identity, a type, and a value.
For example, when you write a = 42, an integer object is created with the value of 42. You can view the identity of an object as a pointer to its location in memory. a is a name that refers to this specific location.
The type of an object (which is itself a special kind of object) describes the internal representation of the object as well as the methods and operations that it supports. When an object of a particular type is created, that object is sometimes called an instance of that type. After an object is created, its identity and type cannot be changed. If an object’s value can be modified, the object is said to be mutable. If the value cannot be modified, the object is said to be immutable. An object that contains references to other objects is said to be a container or collection.
In addition to holding a value, many objects define a number of data attributes and methods. An attribute is a property or value associated with an object. A method is a function that performs some sort of operation on an object when the method is invoked. Attributes and methods are accessed using the dot (.) operator, as shown in the following example:
a = 3 + 4j # Create a complex number r = a.real # Get the real part (an attribute) b = [1, 2, 3] # Create a list b.append(7) # Add a new element using the append method