//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* #第四种方法,并不推荐使用,将所有的类直接调用到*所处的位置,容易引起内存爆满,程序不稳定
来源:https://www.cnblogs.com/Yanjy-OnlyOne/p/12020032.html