La relación entre las clases de padres e hijos / herencia

# ! / Usr / bin / env Python 
# - * - coding: - * - UTF-8 
"" " 
@file: _ heredar la relación clase padre y la subclase .py     
@ E-mail: [email protected] 
@time : 04/04/2020 12:39a.m. 
@author: Nobita    
@Version: 1.0    
@Desciption: la relación entre las clases de padres e hijos / Herencia 
"" " 


clase de coches ():
     DEF  __init__ (Ser, la marca, modelo, año): 
        Auto .make = la marca 
        self.model = Modelo 
        self.year = año 
        self.meter = 0 

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

    DEF read_meter (Ser):   # método de lectura de varios kilómetros 
        Imprimir ( ' Este coche tiene que ' + STR (self.meter) + ' mi ' ) 

    DEF update_meter (Auto , kilometraje):   # define un método para modificar varios kilómetros, a varios kilómetros ser modificados posteriormente, a modo de ejemplo no es necesario modificar el valor de una propiedad de la 
        self.meter = kilometraje 

    DEF increment_meter (ser, Miles):   # acaba de agregar de varios kilómetros, hacer víbora 
        self.meter + = Miles 


my_car = coche ( ' china ', ' Audi ' , ' 2010 ' ) 

Imprimir (my_car.model)
 Imprimir (my_car.get_car_description () del título ()).   # Sintaxis del método Título -> str.title () // devuelve "título" de la cadena, es decir, dijo que todas las palabras se capitalizan para comenzar. 
my_car.read_meter () 
my_car.meter = 50   # a modo de ejemplo para hacer un cambio de valores de atributos 
my_car.read_meter () 
my_car.update_meter ( 100)   # modificada por un método como se ha definido previamente valores de atributo 
my_car.read_meter () 
my_car.increment_meter ( 200 es ) 
my_car.read_meter () 


de clase de la batería ():
     DEF  la __init__ (Ser, battery_size = 70 ):
        self.battery_size = battery_size 

    DEF describe_battery (Ser):
         Imprimir ( ' el coche ' + STR (self.battery_size) + ' capacitancia ' ) 

    DEF la get_Range (Ser):
         SI self.battery_size == 70 : 
            car_range = 240
         elif self.battery_size <= 100 y self.battery_size> = 75 : 
            car_range = 270 
        MSG = ' el coche puede funcionar km {} ' .formato (car_range)
         de retorno MSG


clase ElectricCar (Car):   # crear ElectricCar (vehículo eléctrico) Clase 
    DEF  __init__ (Ser, la marca, modelo, año) 
        . super () __init__ (la marca, modelo, año) 
        self.battery = batería () 

    DEF describe_battery (Ser) :
         Imprimir ( ' atributos específicos de vehículos eléctricos es} { ' .formato (self.battery.battery_size)) 

    DEF read_meter (Ser):
         # una clase padre entre, sin la ayuda de las subclases; subclase que definen una entre el nombre de la clase padre con el nombre del método, ignorará el método de la clase padre, su esencia. (Método sustituir la clase de los padres) 
        Imprimir ( ' Este método es un método para volver a escribir la clase padre, ignora método read_meter () de la clase padre de entre ' ) 


my_ele_car = ElectricCar (' EE.UU. ' , ' 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   # hecho a modo de ejemplo cambiando el valor del atributo 
de impresión (my_ele_car.battery.get_range ()) 

'' ' 
super () es una función especial que permite clase padre y la subclase se pueden asociar. 
Este código permite a la llamada pitón ElectricCar método de la clase padre __init __ (), por lo que esa instancia ElectricCar contiene todas las propiedades de la clase padre.
Python método de inicialización de clase es __init __ (), por lo que el método de la clase padre, la inicialización subclase es que, 
si la clase hijo no implementa __init __ () es llamada para inicializar la inicialización de la clase padre,
Si los instrumentos de la clase hijo esta función, esta función tendrá que llamar explícitamente en el __init clase padre __ (), 
el cual con C ++, Java no, están automáticamente llamar al constructor de la clase padre. 
'' '

 

Supongo que te gusta

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