1. 面向对象的概念1)类是一类抽象的事物,对象是一个具体的事物;用类创建对象的过程 , 称为实例化 。
2)类就是一个模子,只知道在这个模子里有什么属性、什么方法,但是不知道这些属性、方法具体是什么;
所以,我们要在这个模子的基础上 造出一个具体的实例(对象),这个实例就会具体化属性、方法
3)所有的数据类型都是类,都是抽象的;根据数据类型定义变量,该变量就是一个具体的值(对象) 。
面向过程 --> 面向对象的转变
定义一个函数 《==》 定义一个类
函数的返回值(字典) 《==》类的对象(类似字典,只不过调用方式发生了改变)
函数的执行过程 《==》类的实例化
请看 代码展示1 和 代码展示2
1 # 用面向对象的思想、面向过程的语法 去实现 Rectangle的计算 2 def Rectangle(length=0, width=0): 3 self = {} # 存储属性值 4 def __init__(*args): # 初始化函数 -- 完成对矩阵rectangle的长、宽初始化 , 以及面积、周长的调用方式 5 self['length'] = args[0] 6 self['width'] = args[1] 7 self['area'] = area 8 self['perimeter'] = perimeter 9 def area():10 return self['length'] * self['width']11 def perimeter():12 return 2 * (self['length'] + self['width'])13 __init__(length, width) # 调用初始化函数14 return self1516 rec_obj = Rectangle(10,5) # rec_obj 相当于类的一个实例17 print(rec_obj) # rec_obj中存放了实例的属性、方法,通过实例可以查看属性 与 调用方法18 print('length:%s, width:%s, area:%s, perimeter:%s'\19 %(rec_obj['length'], rec_obj['width'], rec_obj['area'](), rec_obj['perimeter']()))代码展示1
1 class Rectangle: 2 temVar = 'over' #定义静态属性,共享于类中的每个对象 3 def __init__(self, *args): # 创建对象后执行的第一个函数,self就是类创建的对象,该函数返回类的对象self 4 self.length = args[0] 5 self.width = args[1] 6 def area(self): 7 return self.length * self.width 8 def perimeter(self): 9 return 2 * (self.length + self.width)1011 rec_obj1 = Rectangle(10, 5) # 实例化一个具体对象1213 # 通过 对象 查看属性(包括静态属性)与调用方法14 print('length:%s, width:%s, area:%s, perimeter:%s'\15 %(rec_obj1.length, rec_obj1.width, rec_obj1.area(), rec_obj1.perimeter()))16 print(rec_obj1.temVar) # 静态属性1718 # 通过 类名 调用方法 、类中的静态属性19 print('area:%s, perimeter:%s'%( Rectangle.area(rec_obj1), Rectangle.perimeter(rec_obj1)))20 print(Rectangle.temVar) # 静态属性2122 # 通过对象名修改属性(若self里 存在该属性,是修改;若self里 不存在该属性 , 是添加新属性)23 # rec_obj1.length = 2024 # rec_obj1.temVar = 'object_over' # 给对象中添加一个新属性 'temVar': 'object_over'25 # 通过类名修改属性(若类里 存在该属性<静态属性>,是修改;若类里 不存在该属性,是添加新属性,<静态属性>)26 # Rectangle.length = 50 # 在类中添加一个新属性 'length': 5027 # Rectangle.temVar = 'class_over'2829 # __dict__的使用30 print(rec_obj1.__dict__) # 查看对象的所有属性,即self属性31 print(Rectangle.__dict__) # 查看类的所有静态属性、方法32 # __dict__ 对于 对象的 增删改查操作都可以通过字典的语法进行33 # __dict__ 对于 类中的名字只能看 不能操作
推荐阅读
- 军棋这个游戏怎么玩(军棋属于什么游戏)
- 一加手机到底怎么样(国产一加属于什么档次)
- OpenDataV低代码平台增加自定义属性编辑
- 我公司是属于生产制造业,最近考虑实施ERP,生产制造业的ERP那家比较好?
- 瑞道锆业资讯 瑞道金属网今日锆产业
- 根据不同时辰看生肖属鼠的财运,属鼠的你必看
- 属羊人未来5年的运势 要时刻注意事业运势情况
- 92年属猴人注定的婚姻解析,要注意什么
- 95年属猪运气在2023年是怎么样的 人生三大方面剖析
- 98年属虎女事业发展如何 赶紧来看看她们的情况