zoukankan      html  css  js  c++  java
  • Python学习第十五篇——类继承和类实例化

           学习Python类时,我们明白了类的本质,以及所谓的面向对象编程思想强调的对事物本身的属性,我们对某一类事物进行描述——采用了很多方法,这些方法描述了类的属性(比如猫科动物的眼睛,四肢,是否哺乳类等等)老虎属于猫科动物,因此我们可以用猫科动物的类描述来描述老虎。但除了这些共性之外,老虎自身也具有一定的差异性,这就引出了继承这一概念:

          即我们在描述老虎这一对象时,可以保留猫科动物这个类的属性,同时为老虎描述新的 属性,当然,我们也是创建老虎类来描述老虎(毕竟还有东北虎,华南虎之分)。下面请见一段代码:

     1 class  Car():
     2     def __init__(self,make,model,year):
     3         self.make = make
     4         self.model  = model
     5         self.year = year
     6         self.odometer_reading = 0
     7         
     8     def get_descriptive_name(self):
     9         long_name = str(self.year)+' '+self.make+' '+self.model
    10         return long_name.title()
    11             
    12     def red_odometer(self):
    13         print("This car has "+str(self.odometer_reading)+" miles on it.")
    14         
    15     def updata_odometer(self,mileage):
    16         if migeage >= self.odometer_reading:
    17             self_odometer_reading = mileage
    18         else:
    19             print("You can't roll back an odometer!")
    20         
    21     def increment_odometer(self,miles):
    22         self.odometer_reading = self.odometer_reading+miles
    23 
    24 class Battery():
    25     def __init__(self,battery_size=70):
    26         self.battery_size = battery_size
    27         
    28     def describe_battery(self):
    29         print("This car has a "+str(self.battery_size)+"-kwh battery.")    
    30     
    31         
    32 class ElectricCar(Car):
    33     def __init__(self,make,model,year):
    34         super().__init__(make,model,year)
    35         self.battery = Battery()
    36         
    37         
    38 my_tesla = ElectricCar('tesla','models',2016)
    39 print(my_tesla.get_descriptive_name())
    40 my_tesla.battery.describe_battery()
    41             

    代码中先创建了一个类,用来描述Car,但是我们要描述特斯拉这种电动汽车,可以继承Car的属性,同时创建自身的一些属性。

    2 随着属性元素越来越多,类中方法的描述也越来越多,因此可以将一些属性独立出来,也封装成一个类,只不过在使用的时候,将这些小类实例化成属性。比如上述代码中对battery的描述

    这里再次强调:用类描述事物的方法:1 初始化类的属性  2:用方法(def)来描述这些属性

  • 相关阅读:
    mysqldump 备份导出数据排除某张表
    PHP中cookies跨目录无法调用解决办法
    数据库之mac上mysql root密码忘记或权限错误的解决办法
    mac攻略(4) -- 使用brew配置php7开发环境(mac+php+apache+mysql+redis)
    js中event.keyCode用法及keyCode对照表
    BigDecimal用法详解
    Java开发中的23种设计模式详解(转)
    常用正则表达式大全 (转)
    sql查询重复记录、删除重复记录方法大全
    使用连接来代替in和not in(使用外连接技巧)
  • 原文地址:https://www.cnblogs.com/shaonianpi/p/9491709.html
Copyright © 2011-2022 走看看