[PYTHON] Expliquez clairement super ()

Aperçu

J'ai réexaminé super (), qui hérite des classes python, à chaque fois qu'il apparaît, donc je vais essayer de clarifier comment l'utiliser.

Utilisation

Qu'est-ce que «super ()»?

Utilisé pour hériter de la classe parent

class Parent():
    def __init__(self, plus):
        self.min = 20
        self.plus = plus
    
    def plus(self):
        age = self.min + self.plus
        return age

class Child(Parent):
    def __init__(self):
        self.plus = 8

Même si vous faites (). Plus () dans cet état, __init__ de class Parent sera écrasé ( self.min disparaît), entraînant une erreur.

Par conséquent, si vous faites ce qui suit, c'est une raison d'hériter du «__init __» de la classe parente.

class Parent():
    def __init__(self, plus):
        self.min = 20
        self.plus = plus
    
    def plus(self):
        age = self.min + self.plus
        return age

class Child(Parent):
    def __init__(self):
        super().__init__(plus)
        self.plus = 8

La valeur de self.min est héritée et peut afficher la valeur 28

Est-ce «init» après «super ()»?

Après super (), il n'est pas nécessaire que ce soit __init__, cela doit juste être une méthode de la classe parente.

class Parent():
    def message(self, text):
        print('your name is: {}'.format(text))

class Child(Parent):
    def message(self):
        print('your friend is: {}'.format(text))
        super().message(text)    

grammaire

À propos des arguments dans super ()

Différent entre la série python2 et la série 3

Ce qui précède semble être standard

À propos des arguments dans __init__ ()

Décrit dans le commentaire de l'exemple précédent

class Parent():
    def __init__(self, plus):
        self.min = 20
        self.plus = plus
    
    def plus(self):
        age = self.min + self.plus
        return age

class Child(Parent):
    #soi et super()Init()Décrivez les arguments utilisés dans et ajoutez des arguments
    def __init__(self, plus):
        # init()Self peut être omis à l'intérieur, les variables par défaut peuvent également être omises*, Aligne le nombre d'arguments avec l'init de la classe parente
        super().__init__(plus)
        self.plus = 8

Autrement dit, concernant la classe enfant

c'est tout

Recommended Posts

Expliquez clairement super ()
[Super Basics] À propos de Jupyter Notebook
À propos des commandes Linux Édition super basique
Rendez les applications GUI super faciles avec tkinter