Chapter 15. Classes and object-oriented programming

 

This chapter covers

  • Defining classes
  • Using instance variables and @property
  • Defining methods
  • Defining class variables and methods
  • Inheriting from other classes
  • Making variables and methods private
  • Inheriting from multiple classes

In this chapter, I discuss Python classes, which can be used to hold both data and code. Although most programmers are probably familiar with classes or objects in other languages, I make no particular assumptions about knowledge of a specific language or paradigm. In addition, this chapter is a description only of the constructs available in Python; it’s not an exposition on object-oriented programming (OOP) itself.

15.1. Defining classes

A class in Python is effectively a data type. All the data types built into Python are classes, and Python gives you powerful tools to manipulate every aspect of a class’s behavior. You define a class with the class statement:

class MyClass:
    body

body is a list of Python statements—typically, variable assignments and function definitions. No assignments or function definitions are required. The body can be just a single pass statement.

By convention, class identifiers are in CapCase—that is, the first letter of each component word is capitalized, to make the identifiers stand out. After you define the class, you can create a new object of the class type (an instance of the class) by calling the class name as a function:

instance = MyClass()

15.2. Instance variables

15.3. Methods

15.4. Class variables

15.5. Static methods and class methods

15.6. Inheritance

15.7. Inheritance with class and instance variables

15.8. Recap: Basics of Python classes

15.9. Private variables and private methods

15.10. Using @property for more flexible instance variables

15.11. Scoping rules and namespaces for class instances

15.12. Destructors and memory management

15.13. Multiple inheritance

Summary

sitemap