python面向对象编程

喜欢而已 提交于 2019-12-11 03:47:07

//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 Carfrom 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_timemy_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_timemy_tesla=ElectricCar("Tesla","model-s",2017)print(my_tesla.year)my_tesla.this_year=2020my_tesla.battery(100)print(my_tesla.detection())#导入模块的四种方法:from car_file import Carfrom car_file import ElectricCar        #第一种方法from car_file import Car,ElectricCar    #第二种方法import car_file  # A.b                  #第三种方法from car_file import*                   #第四种方法,并不推荐使用,将所有的类直接调用到*所处的位置,容易引起内存爆满,程序不稳定

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!