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!')
selfas 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!'
Lessons in this unit:
| 0: | Introduction |
| 1: | Functions |
| 2: | Lambda functions |
| 3: | Nested functions |
| 4: | Recursion |
| 5: | Closures |
| 6: | Objects |
| 7: | ▶︎ Classes |
| 8: | Polymorphism |
| 9: | Operator overloading |