1. Nessa aula vamos aprender a importância do método super dentro do contexto de Herança.
  2. O objetivo desse método é permitir que uma subclasse herde os atributos da classe pai, sem a necessidade de passar essa informação no método init, por exemplo.
  3. Para praticar, vamos criar o arquivo 11-metodo_super.py.
class Phone: 
    def __init__(self,brand,model_name,price):
        self._brand = brand
        self._model_name =  model_name
        self._price =  max(price,0)
        
    @staticmethod
    def make_a_call(phone_num):
        print(f"calling {phone_num}...")
    
    def __str__(self):
        return f"{self._brand}{self._model_name}"
    
class SmartPhone(Phone): 
     def __init__(self,brand,model_name,price, ram, internal_memory, back_camera):  
        
        super().__init__(brand,model_name,price)  
        
        self.ram = ram
        self.internal_memory =  internal_memory
        self.back_camera = back_camera
        
        
Moto =  Phone('Moto','G7',1000)
print(Moto)
Moto.make_a_call(232132)
print(f"Valor do {Moto._brand}{Moto._model_name} com desconto é {Moto.discount()}")
print(vars(Moto))

Iphone = SmartPhone('Iphone','13',7000,'4GB','128GB','25MP')
print(Iphone)
Iphone.make_a_call(32142342)
print(f"Valor do {Iphone._brand}{Iphone._model_name} com desconto é {Iphone.discount()}")
print(vars(Iphone))
  1. Para executar o arquivo, vamos executar o comando: python .\11-metodo_super.py.

Img1.png