Python-Grundlagen ⑤

Grundkenntnisse in Python ⑤. Es ist mein Studienprotokoll. Bitte keine übermäßigen Erwartungen.

Frühere Beiträge

Python-Grundlagen Python-Grundlagen ② Python-Grundlagen ③ Python-Grundlagen ④

Erbe

menu_item.py


#Übergeordnete Klasse
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


#Kinderklasse
# menu_item.Laden Sie die MenuItem-Klasse von py
from menu_item import MenuItem

#Definieren Sie eine neue Klasse, indem Sie eine andere Klasse erben
class Sweets(MenuItem):
    pass #Zeigt an, dass keine Verarbeitung erfolgt
    #Richten Sie die Einrückungen aus (4 Felder mit halber Breite).

-Kinderklasseninstanzmethode Die untergeordnete Klasse kann sowohl "in der übergeordneten Klasse definierte Methoden" als auch "unabhängig definierte Methoden" verwenden. Die Methode der untergeordneten Klasse kann jedoch nicht in der übergeordneten Klasse verwendet werden.

sweets.py


#Kinderklasse
from menu_item import MenuItem

class Sweets(MenuItem):
    def calorie_info(self): #Fügen Sie dem ersten Argument in der Methodendefinition self hinzu
        print(str(self.calorie) + 'ist kcal') # str()Konvertieren Sie Zahlen in Zeichenfolgen mit
        #Richten Sie die Einrückungen aus (4 Felder mit halber Breite).

-überschreiben Das Definieren einer Methode in einer untergeordneten Klasse mit demselben Namen wie eine Methode in der übergeordneten Klasse überschreibt die Methode. Kurz gesagt, die in der untergeordneten Klasse definierte Methode wird mit Priorität aufgerufen.

menu_item.py


#Übergeordnete Klasse
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):
    #Info-Methode definieren
    def info(self):
        return self.name + ': ¥' + str(self.price) + str(self.calorie) + 'kcal'
    
    def calorie_info(self):
        print(str(self.calorie) + 'ist kcal')

Die info-Methode in der untergeordneten Klasse hat Vorrang und wird anstelle der info-Methode in der übergeordneten Klasse überschrieben

Methode duplizieren

  • Durch Einstellung von "super (). Methodenname ()" ` Die in der übergeordneten Klasse definierte Instanzmethode kann unverändert verwendet werden.

menu_item.py


#Übergeordnete Klasse
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()Von der Elternklasse mit__init__()Anruf
        super().__init__(name, price)
        # self.name =Name → Doppelte Teile löschen
        # self.price =Preis → Löschen Sie das duplizierte Teil
    
    def info(self):
        return self.name + ': ¥' + str(self.price) + str(self.calorie) + 'kcal'

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

Recommended Posts