Ricerca…


Metodo di base prioritario

Ecco un esempio di override di base in Python (per chiarezza e compatibilità con Python 2 e 3, usando la nuova classe di stile e print with () ):

class Parent(object):
    def introduce(self):
        print("Hello!")

    def print_name(self):
        print("Parent")
    
    
class Child(Parent):
    def print_name(self):
        print("Child")
    
    
p = Parent()
c = Child()

p.introduce()
p.print_name()

c.introduce()
c.print_name()

$ python basic_override.py 
Hello!
Parent
Hello!
Child

Quando viene creata la classe Child , eredita i metodi della classe Parent . Ciò significa che qualsiasi metodo che ha la classe genitore avrà anche la classe figlia. Nell'esempio, l' introduce è definita per la classe Child perché è definita per Parent , nonostante non sia stata definita esplicitamente nella definizione di classe di Child .

In questo esempio, l'override si verifica quando Child definisce il proprio metodo print_name . Se questo metodo non è stato dichiarato, allora c.print_name() avrebbe stampato "Parent" . Tuttavia, Child ha sovrascritto la Parent definizione di 's di print_name , e così ora su chiamando c.print_name() , la parola "Child" viene stampato.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow