zoukankan      html  css  js  c++  java
  • python面向对象编程

    //2019-12-10
    面向对象的编程
    1、面向对象主要包含三个方面:面向对象的含义、类和继承


    2、面向对象的编程语言主要有三大类语言:C++、Python和Java,面向过程的语言主要有C语言和Fortran语言
    3、面向对象的具体操作如下所示:

    以汽车的估值计算举例如下:


    #Python面向对象的编程
    class Car(): #创建类时,一般需要把类的名称首字母大写,这也是定义类的一种规范方式
    """汽车使用的目前价值估计使用程序""" #类的功能说明与描述程序语句
    def __init__(self, make, model, year): #当创建类时,Python会自动运行该方法
    #下划线是一种约定,避免Python默认的方法与普通的方法名称冲突
    #self必不可少,并且必须位于其他形参
          self.make = make #可以通过对象来进行访问的变量称为属性,进行对象属性的定义,一般需要将对象的独立属性定义出来
          self.model = model
          self.year = year

    def detection(self): #类的具体方法定义,在后续对于队形属性的使用时直接访问self即可进行
          duration = 2018 - self.year
          price = 30 - 2 * duration
          long_time = "你的" + self.make + self.model + "到目前已经行驶了" + str(duration) + "年," + "目前价值为" + str(price) + "万元"
          return long_time

    my_car = Car("奥迪", "A4", 2013)
    print(my_car.year)
    print(my_car.detection())
    your_car=Car("奔驰","c200",2012)#Python面向对象的编程
    4、对于类的属性的修改,
    (1)一般的方法是将需要修改的属性定义为默认值,self.属性名=默认值,然后需要修改默认的属性值时,需要通过定义对象进行属性的修改
    对象.属性=修改值
    (2)还可以定义函数def,传入新的参数的方法来进行相关的修改

    5、类的继承:

    6、导入类的方法主要有四种:

    #导入模块的四种方法:
    from car_file import Car
    from car_file import ElectricCar #第一种方法
    from car_file import Car,ElectricCar #第二种方法
    import car_file # A.b #第三种方法
    from car_file import* #第四种方法,并不推荐使用,将所有的类直接调用到*所处的位置,容易引起内存爆满,程序不稳定

    2019-12-10-python面向对对象的编程学习训练代码:
    class Car():               #创建类时,一般需要把类的名称首字母大写,这也是定义类的一种规范方式
    """汽车使用的目前价值估计使用程序""" #类的功能说明与描述程序语句
    def __init__(self, make, model, year): #当创建类时,Python会自动运行该方法
    #下划线是一种约定,避免Python默认的方法与普通的方法名称冲突
    #self必不可少,并且必须位于其他形参前面
    self.make = make #独立属性传入-可以通过对象来进行访问的变量称为属性,进行对象属性的定义,一般需要将对象的独立属性定义出来
    self.model = model
    self.year = year
    self.this_year=2018 #默认属性-类的属性修改,一般定义为默认值,不可以在定义对象时传入
    def mod_this_year(self,newyear): #修改当前年份的第二种方法-定义类的函数来进行修改
    self.this_year=newyear
    def detection(self): #类的具体方法定义,在后续对于队形属性的使用时直接访问self即可进行
    duration = self.this_year - self.year
    price = 30 - 2 * duration
    long_time = "你的" + self.make + self.model + "到目前已经行驶了" + str(duration) + "年," + "目前价值为" + str(price) + "万元"
    return long_time
    my_car=Car("奥迪","A4","2013")
    print(my_car.year)
    print(my_car.detection)
    my_car = Car("奥迪", "A4", 2013)
    my_car.this_year=2020 #方法1对象修改属性值-需要修改对象的属性时必须要通过对象来进行修改,并且修改属性不需要在定义对象时传进去,只需要的属性定义语句中添加类的默认属性和默认值
    print(my_car.year)
    print(my_car.detection())
    your_car=Car("奔驰","c200",2012)
    your_car.mod_this_year(2020) #方法2使用方法定义来进行属性的修改,不需要返回return值,需要进行传入新的参数就可以
    print(your_car.detection())
    class ElectricCar(Car): #类的继承
    def __init__(self,make,model,year):
    #使用super()函数可以直接将父类继承给子类
    super().__init__(make,model,year) #使用super函数可以将子类和父类进行关联,让Python调用父类的方法————init__()
    def battery(self,capacity):
    self.capacity_num=capacity
    print("你选择的电池容量为:",self.capacity_num)
    def detection(self): #在子类的定义中如果和父类的方法相同,则将进行覆盖。另外对于父类无法使用子类的定义方法,子类可以使用父类的所有方法
    duration = self.this_year - self.year
    price = 30 - duration-(500/self.capacity_num)
    long_time = "你的" + self.make + self.model + "到目前已经行驶了" + str(duration) + "年," + "目前价值为" + str(price) + "万元"
    return long_time
    my_tesla=ElectricCar("Tesla","model-s",2017)
    print(my_tesla.year)
    my_tesla.this_year=2020
    my_tesla.battery(100)
    print(my_tesla.detection())

    #导入模块的四种方法:
    from car_file import Car
    from car_file import ElectricCar #第一种方法
    from car_file import Car,ElectricCar #第二种方法
    import car_file # A.b #第三种方法
    from car_file import* #第四种方法,并不推荐使用,将所有的类直接调用到*所处的位置,容易引起内存爆满,程序不稳定


  • 相关阅读:
    Python之旅的第19天(类的初识)
    Python之旅的第18天(configparser、hashlib模块)
    Python之旅的第17天(re模块、logging模块)
    第二阶段个人冲刺博客1
    注释
    第十五周学习进度博客
    第十四周学习进度博客
    12-用户体验评价
    11-找水王
    第十三周学习进度博客
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/12020032.html
Copyright © 2011-2022 走看看