Les bases de Python ⑤

Connaissance de base de Python ⑤. C'est ma note d'étude. Veuillez ne pas trop attendre.

Postes antérieurs

Principes de base de Python Principes de base de Python ② Principes de base de Python ③ Principes de base de Python ④

Héritage

-Créer une nouvelle classe basée sur une classe existante Hériter d'autres classes en définissant " class new class name (original class name): " Vous pouvez définir une nouvelle classe. La nouvelle classe est appelée "classe enfant" </ b> et la classe d'origine est appelée "classe parent" </ b>.

menu_item.py


#Classe parent
class MenuItem:
    def __init__(self, name, price):
        self.name = name
        self.price = price

    def info(self):
        return self.name + ': ¥' + str(self.price)

    def get_total_price(self, count):
        total_price = self.price * count

        if count >= 3:
            total_price *= 0.9

        return round(total_price)

sweets.py


#Classe enfant
# menu_item.Charger la classe MenuItem depuis py
from menu_item import MenuItem

#Définir une nouvelle classe en héritant d'une autre classe
class Sweets(MenuItem):
    pass #Indique qu'il n'y a pas de traitement
    #Aligner les retraits (4 espaces demi-largeur)

-Méthode d'instance de classe enfant La classe enfant peut utiliser à la fois des «méthodes définies dans la classe parent» et des «méthodes définies indépendamment». Cependant, la méthode de la classe enfant ne peut pas être utilisée dans la classe parent.

sweets.py


#Classe enfant
from menu_item import MenuItem

class Sweets(MenuItem):
    def calorie_info(self): #Ajouter self au premier argument de la définition de méthode
        print(str(self.calorie) + 'est kcal') # str()Convertir des nombres en chaînes avec
        #Aligner les retraits (4 espaces demi-largeur)

-passer outre La définition d'une méthode dans une classe enfant avec le même nom qu'une méthode dans la classe parent remplace la méthode. En bref, la méthode définie dans la classe enfant est appelée avec priorité.

menu_item.py


#Classe parent
class MenuItem:
    def __init__(self, name, price):
        self.name = name
        self.price = price

    def info(self):
        return self.name + ': ¥' + str(self.price)

    def get_total_price(self, count):
        total_price = self.price * count

        if count >= 3:
            total_price *= 0.9

        return round(total_price)

sweets.py


from menu_item import MenuItem

class Food(MenuItem):
    #définir la méthode d'information
    def info(self):
        return self.name + ': ¥' + str(self.price) + str(self.calorie) + 'kcal'
    
    def calorie_info(self):
        print(str(self.calorie) + 'est kcal')

La méthode info dans la classe enfant est prioritaire et est écrasée à la place de la méthode info dans la classe parent

Dupliquer dans la méthode

-En réglant "super (). Method name ()" ` La méthode d'instance définie dans la classe parent peut être utilisée telle quelle.

menu_item.py


#Classe parent
class MenuItem:
    def __init__(self, name, price):
        self.name = name
        self.price = price

    def info(self):
        return self.name + ': ¥' + str(self.price)

    def get_total_price(self, count):
        total_price = self.price * count

        if count >= 3:
            total_price *= 0.9

        return round(total_price)

sweets.py


from menu_item import MenuItem

class Food(MenuItem):
    def __init__(self, name, price):
        # super()De la classe parente utilisant__init__()Appel
        super().__init__(name, price)
        # self.name =nom → Supprimer les pièces dupliquées
        # self.price =prix → Supprimer la pièce dupliquée
    
    def info(self):
        return self.name + ': ¥' + str(self.price) + str(self.calorie) + 'kcal'

    def calorie_info(self):
        print(str(self.calorie) + 'est kcal')

Recommended Posts