Python Classes
Defining new objects in Python using classes
In addition to using the Python-provided types, we can declare our own classes, and from classes we can instantiate objects.
An object is an instance of a class. A class is the type of an object.
Define a class in this way:
class <class_name>:
# my class
For example let’s define a Dog class
class Dog:
# the Dog class
A class can define methods:
class Dog:
# the Dog class
def bark(self):
print('WOF!')
self
as the argument of the method points to the current object instance, and must be specified when defining a method.
We create an instance of a class, an object, using this syntax:
roger = Dog()
Now roger
is a new object of type Dog.
If you run
print(type(roger))
You will get <class '__main__.Dog'>
A special type of method, __init__()
is called constructor, and we can use it to initialize one or more properties when we create a new object from that class:
class Dog:
# the Dog class
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print('WOF!')
We use it in this way:
roger = Dog('Roger', 8)
print(roger.name) # 'Roger'
print(roger.age) # 8
roger.bark() # 'WOF!'
One important features of classes is inheritance.
We can create an Animal class with a method walk()
:
class Animal:
def walk(self):
print('Walking..')
and the Dog class can inherit from Animal:
class Dog(Animal):
def bark(self):
print('WOF!')
Now creating a new object of class Dog
will have the walk()
method as that’s inherited from Animal
:
roger = Dog()
roger.walk() # 'Walking..'
roger.bark() # 'WOF!'
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025