% Programmation avec Python (chapitre 9) % Dimitri Merejkowsky
\center \huge Rappels
class Car:
total_number_of_cars = 0
def __init__(self, color="black"):
self.color = color
Car.total_number_of_cars += 1
def drive(self):
print("vroom")
@classmethod
def print_number_of_cars(cls):
print(cls.total_number_of_cars,
"cars have been made")
class Authorization:
def __init__(self, credentials_file):
...
self.password = ...
class Client:
url = "https://exmple.com"
def __init__(self, auth)
self.auth = auth
def make_request(self):
password = self.auth.password
requests.get(url, password=password)
class A:
def method_in_a(self):
self.attribute_in_a = 42
class B(A):
def method_in_b(self):
self.method_in_a() # ok
self.attribute_in_a # ok
class A:
def method_in_a(self):
pass
class B(A):
def method_in_b(self):
pass
>>> a = A()
>>> a.method_in_a() # ok
>>> a.method_in_b() # error
>>> b = B()
>>> b.method_in_b() # ok
>>> b.method_in_a() # ok
class A:
def method_in_a(self):
pass
class B(A):
def method_in_b(self):
pass
>>> a = A()
>>> a.method_in_a() # ok
>>> a.method_in_b() # error
>>> b = B()
>>> b.method_in_b() # ok
>>> b.method_in_a() # ok
class A:
def method(self):
print("A!")
class B(A):
def method(self):
print("B!")
>>> a = A()
>>> a.method() # ok
'A!'
>>> b = B()
>>> b.method()
'B!'
class A:
def method(self):
print("A!")
class B(A):
def method(self):
super().method()
print("B!")
>>> a = A()
>>> a.method() # ok
'A!'
>>> b = B()
>>> b.method()
'A!'
'B!'
# All animals have a species
class Animal:
def __init__(self, species):
self.species = species
# Pets are animals with a name
class Pet(Animal):
def __init__(self, species, name):
super().__init__(species) # <- à ne pas oublier
self.name = name
# All dogs are pets
class Dog(Pet):
def __init__(self, name):
super().init("dog", name)