Ceci est juste une note du contrôle de fonctionnement. Référencé ici
python 3.6.9
--Fly variable dans la classe Bird
class Bird:
def __init__(self):
self.fly = 'i can flying'
print(self.__class__.__name__ + 'Créer une classe')
class Fish:
def __init__(self):
self.swim = 'i can swimming'
print(self.__class__.__name__ + 'Créer une classe')
class Penguin(Class1, Class2):
def __init__(self):
print(self.__class__.__name__ + 'Créer une classe')
penguin = Penguin()
penguin.fly
#Résultat d'exécution
AttributeError: 'Penguin' object has no attribute 'fly'
Les variables de classe Fish sont écrasées par les fonctions de classe Bird __init__
class Bird():
def __init__(self):
self.fly = 'i can flying'
print(self.__class__.__name__)
class Fish():
def __init__(self):
self.swim = 'i can swimming'
print(self.__class__.__name__)
class Penguin(Bird, Fish):
def __init__(self):
super().__init__()
print(self.__class__.__name__)
penguin = Penguin()
penguin.fly
penguin.swim
#Résultat d'exécution
AttributeError: 'Penguin' object has no attribute 'swim'
Il peut être hérité sans être écrasé en héritant explicitement de la fonction __init __ 'avec la fonction super () dans la fonction
__init __` de chaque classe.
class Bird(object):
def __init__(self):
super(Bird, self).__init__()
self.fly = 'i can flying'
print('Dans la classe Bird')
class Fish(object):
def __init__(self):
super(Fish, self).__init__()
self.swim = 'i can swimming'
print('Dans la classe Fish')
class Penguin(Bird, Fish):
def __init__(self):
super(Penguin,self).__init__()
print('Dans la classe Fish')
penguin = Penguin()
print(penguin.fly)
print(penguin.swim)
--Définissez les valeurs initiales de Pichu, Pikachu, Raichu
class Pokemon():
def __init__(self, life=0, power=0):
self.life = life
self.power = power
print('Dans la classe Pokémon')
print(self.__class__.__name__ + 'classe')
print('life: {} power: {}'.format( self.life, self.power))
print('\n↓\n')
class Pichu(Pokemon):
def __init__(self, life=50, power=100):
super().__init__(life, power)
print('Dans la classe Pichu')
print(self.__class__.__name__ + 'classe')
print('life: {} power: {}'.format( self.life, self.power))
print('\n↓\n')
def kamituku(self):
print('Mordant')
class Pikachu(Pichu):
def __init__(self, life=150, power=200):
super().__init__(life, power)
print('En classe Pikachu')
print(self.__class__.__name__ + 'classe')
print('life: {} power: {}'.format( self.life, self.power))
print('\n↓\n')
def denkishokku(self):
print('Choc électrique')
class Raichu(Pikachu):
def __init__(self, life=200, power=250):
super().__init__(life, power)
print('En classe Raichu')
print(self.__class__.__name__ + 'classe')
print('life: {} power: {}'.format( self.life, self.power))
print('\n')
def kaminari(self):
print('Tonnerre')
def set(self, life, power):
self.life = life
self.power = power
print('---------------------------')
print('◯ instance pokemon ◯')
print('---------------------------')
pokemon = Pokemon()
print('---------------------------')
print('◯ instance de pichu ◯')
print('---------------------------')
pichu = Pichu()
print('---------------------------')
print('◯ instance de pikachu ◯')
print('---------------------------')
pikachu = Pikachu()
print('---------------------------')
print('◯ instance de raichu ◯')
print('---------------------------')
raichu = Raichu()
raichu.kamituku()
raichu.denkishokku()
raichu.kaminari()
Résultat d'exécution
---------------------------
◯ instance pokemon ◯
---------------------------
Dans la classe Pokémon
Classe Pokémon
life: 0 power: 0
↓
---------------------------
◯ instance de pichu ◯
---------------------------
Dans la classe Pokémon
Classe Pichu
life: 50 power: 100
↓
Dans la classe Pichu
Classe Pichu
life: 50 power: 100
↓
---------------------------
◯ instance de pikachu ◯
---------------------------
Dans la classe Pokémon
Classe Pikachu
life: 150 power: 200
↓
Dans la classe Pichu
Classe Pikachu
life: 150 power: 200
↓
En classe Pikachu
Classe Pikachu
life: 150 power: 200
↓
---------------------------
◯ instance de raichu ◯
---------------------------
Dans la classe Pokémon
Classe Raichu
life: 200 power: 250
↓
Dans la classe Pichu
Classe Raichu
life: 200 power: 250
↓
En classe Pikachu
Classe Raichu
life: 200 power: 250
↓
En classe Raichu
Classe Raichu
life: 200 power: 250
Mordant
Choc électrique
Tonnerre
--Human a des variables de membre yaruki --Tarou hérite de l'humain --La valeur initiale du yaruki de Tarou est de 100 --Réglez le yaruki de tarou à 50
--Human a des variables d'initialisation --Héritage de tarou des variables d'initialisation
class Human:
def __init__(self, yaruki):
self.yaruki = yaruki
class Tarou(Human):
def __init__(self,yaruki):
super().__init__(yaruki)
def set(self, yaruki):
self.yaruki = yaruki
tarou = Tarou(100)
tarou.set(50)
print(tarou.yaruki)
#Résultat d'exécution
50
class Human:
def __init__(self):
self.yaruki
class Tarou(Human):
def __init__(self):
self.yaruki = 100
def set(self, yaruki):
self.yaruki = yaruki
tarou = Tarou()
tarou.set(50)
tarou.yaruki
#Résultat d'exécution
50
Recommended Posts