Classes
Creating Classes
Create a class with:
class ClassName:
...
Instanciate it
Then create an object from this class with:
obj = ClassName()
__init__() function
All classes have a function __init__()
which is basically the class constructor.
class MyClass:
__init__(self, otherParams):
self.something = otherParams
obj = MyClass('someValue')
__str__()
function
__str__()
functionControls what should be returned when the class object is represented as a string.
Use it to format the way you wish when printed.
self
parameter
self
parameterIs a reference to the current instance of the class.
Every function inside the class that have to access the class properties, MUST have a self
as FIRST parameter.
You do not have to name it self
, you can call it whatever you want, it just HAVE to be the first parameter.
Inheritance
Allows us to define a class that inherits all the methods and properties from another class.
To do this you simply inform the Parent class name when creating the class:
class Student(Person):
...
Overwriting the parent constructor
To overwrite it you just declare a constructor for the child class.
class Student(Person):
def __init__(self, ...):
...
Overwriting but also calling the parents constructor
class Student(Person):
def __init__(self, ...):
Person.__init__(self, ...)
...
You can also use super()
:
class Student(Person):
def __init__(self, ...):
# Note that you don't have to pass the 'self' as parameter to the 'super'
super().__init__(...)
Polymorphism
All these class have a move()
method, since they inherit from Vehicle
, and some class overwrite and some don't.
Also check the use of pass
in the Car
class, since it does nothing but inherit.
class Vehicle:
def __init__(self, brand, model):
self.brand = brand
self.model = model
def move(self):
print("Move!")
class Car(Vehicle):
pass
class Boat(Vehicle):
def move(self):
print("Sail!")
class Plane(Vehicle):
def move(self):
print("Fly!")
car1 = Car("Ford", "Mustang") # Create a Car object
boat1 = Boat("Ibiza", "Touring 20") # Create a Boat object
plane1 = Plane("Boeing", "747") # Create a Plane object
for x in (car1, boat1, plane1):
print(x.brand)
print(x.model)
x.move()
Last updated