A relação entre as classes pai e filho / herança

# ! / Usr / bin / env Python 
# - * - Codificação: UTF-8 - * - 
"" " 
@file: _ herdar a relação classe pai e subclasse .py     
@ E-mail: [email protected] 
@time : 2020/04/04 00:39 
@author: Nobita    
@Version: 1,0    
@Desciption: a relação entre as classes pai e filho / Herança 
"" " 


classe Car ():
     DEF  __init__ (Self, a marca, modelo, ano): 
        Auto .make = a marca 
        self.model = Modelo 
        self.year = ano 
        self.meter = 0 

    DEF get_car_description (Self): 
        long_name = STR (self.make) + ' ' + Self.model + '  ' + self.year
         retorno long_name 

    DEF read_meter (self):   # método de leitura de vários quilómetros 
        Imprimir ( ' Este CAR tem tem ' + STR (self.meter) + ' mi O ' ) 

    DEF update_meter (Self , quilometragem):   # define um método para modificar vários quilômetros, vários quilómetros de ser modificados posteriormente, a título de exemplo não precisa modificar o valor de uma propriedade do 
        self.meter = quilometragem 

    DEF increment_meter (Self, Miles):   # recém-adicionado de vários quilômetros, fazer víbora 
        self.meter + = Miles 


my_car = Car ( ' China ', ' Audi ' , ' 2010 ' ) 

Imprimir (my_car.model)
 Imprimir (my_car.get_car_description () título ()).   # Título sintaxe do método -> str.title () // retorna "título" da cadeia, isto é, ele disse que todas as palavras estão capitalizadas para começar. 
my_car.read_meter () 
my_car.meter = 50   # a título de exemplo, para efectuar uma alteração de valores de atributo 
my_car.read_meter () 
my_car.update_meter ( 100)   # modificado por um método como valores de atributos anteriormente definido 
my_car.read_meter () 
my_car.increment_meter ( 200 é ) 
my_car.read_meter () 


classe da bateria ():
     DEF  do __init__ (Self, battery_size = 70 ):
        self.battery_size = battery_size 

    DEF describe_battery (Self):
         Imprimir ( ' carro ' + STR (self.battery_size) + ' capacitância ' ) 

    DEF o get_Range (Self):
         IF self.battery_size == 70 : 
            car_range = 240
         elif self.battery_size <= 100 e self.battery_size> = 75 : 
            car_range = 270 
        MSG = ' o carro pode rodar km {} ' .format (car_range)
         retorno MSG


classe ElectricCar (Car):   # criar ElectricCar (veículo eléctrico) classe 
    DEF  __init__ (Self, a marca, modelo, ano): 
        . Super () __init__ (a marca, modelo, ano) 
        self.battery = Bateria () 

    DEF describe_battery (Self) :
         Imprimir ( ' atributos específicos de veículos elétricos} é { ' .format (self.battery.battery_size)) 

    DEF read_meter (self):
         # uma classe pai entre, sem a ajuda de subclasses; subclasse que definem um entre o nome da classe pai com o nome do método, ele irá ignorar o método da classe pai, sua essência. (Método substituir a classe pai) 
        Imprimir ( ' Este método é um método para reescrever a classe principal, ignora método read_meter () da classe principal de entre os ' ) 


my_ele_car = ElectricCar (' EUA ' , ' Baoma ' , ' 2020 ' ) 

Imprimir (my_ele_car.get_car_description (). Título ()) 
my_ele_car.read_meter () 
my_ele_car.describe_battery () 
my_ele_car.battery.describe_battery () 
Imprimir (my_ele_car.battery.battery_size)
 Imprimir (my_ele_car.battery.get_range ()) 
my_ele_car.battery.battery_size = 80   # feita a título de exemplo alterando o valor do atributo 
de impressão (my_ele_car.battery.get_range ()) 

'' ' 
Super () é uma função especial que permite classe pai e subclasse pode ser associado. 
Este código permite que o Python chamada ElectricCar __init método classe pai __ (), de modo que instância ElectricCar contém todas as propriedades da classe pai.
Python método de inicialização de classe é __init __ (), então o método da classe pai, a inicialização subclasse é que, 
se a classe filha não implementa __init __ () é chamado para inicializar a inicialização da classe pai, 
se os implementos sub-classe esta função, esta função tem que explicitamente chamá-lo em __init da classe pai __ () , 
que com C ++, Java não, eles são automaticamente chamar o construtor da classe pai. 
'' '

 

Acho que você gosta

Origin www.cnblogs.com/chenshengkai/p/12630147.html
Recomendado
Clasificación