Reading about Python? Actually practice it. Try PyChallenge free

Python Tutorial

Python class: Objects and classes

Python hosting: PythonAnywhere — host, run and code Python in the cloud. Free tier available.

Introduction

Technology always evolves. What are classes and where do they come from?

1. Statements: In the very early days of computing, programmers wrote only commands.

2. Functions: Reusable group of statements, helped to structure that code and it improved readability.

3. Classes: Classes are used to create objects which have functions and variables. Strings are examples of objects: A string book has the functions book.replace() and book.lowercase(). This style is often called object oriented programming.

Lets take a dive!

Python Courses: Practice Python with interactive exercises

Python class

We can create virtual objects in Python. A virtual object can contain variables and methods.  A program may have many different types and are created from a class. Example:

class User:
    name = ""
    
    def __init__(self, name):
        self.name = name
    
    def sayHello(self):
        print("Hello, my name is " + self.name)

# create virtual objects james = User("James") david = User("David") eric = User("Eric")

# call methods owned by virtual objects james.sayHello() david.sayHello()

Run this program. In this code we have 3 virtual objects: james, david and eric.  Each object is instance of the User class.

python class: creation of objects Python Class: create objects

In this class we defined the sayHello() method, which is why we can call it for each of the objects.  The __init__() method is called the constructor and is always called when creating an object.  The variables owned by the class is in this case "name". These variables are sometimes called class attributes.

We can create methods in classes which update the internal variables of the object. This may sound vague but I will demonstrate with an example.

Class variables

We define a class CoffeeMachine of which the virtual objects hold the amount of beans and amount of water. Both are defined as a number (integer). We may then define methods that add or remove beans.

def addBean(self):
        self.bean = self.bean + 1

def removeBean(self): self.bean = self.bean - 1

We do the same for the variable water. As shown below:

class CoffeeMachine:
    name = ""
    beans = 0
    water = 0
    
    def __init__(self, name, beans, water):
        self.name = name
        self.beans = beans
        self.water = water
        
    def addBean(self):
        self.beans = self.beans + 1
    
    def removeBean(self):
        self.beans = self.beans - 1
    
    def addWater(self):
        self.water = self.water + 1
    
    def removeWater(self):
        self.water = self.water - 1
    
    def printState(self):
        print "Name  = " + self.name
        print "Beans = " + str(self.beans)
        print "Water = " + str(self.water)

pythonBean = CoffeeMachine("Python Bean", 83, 20) pythonBean.printState() print "" pythonBean.addBean() pythonBean.printState()

Run this program. The top of the code defines the class as we described.  The code below is where we create virtual objects. In this example we have exactly one object called "pythonBean".  We then call methods which change the internal variables, this is possible because we defined those methods inside the class.  Output:

Name  = Python Bean
Beans = 83
Water = 20

Name = Python Bean Beans = 84 Water = 20

 

BackNext

Practice
Stop reading. Start writing Python.
PyChallenge gives you interactive exercises in your browser — no install needed.
Practice Python with interactive exercises