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__ 对于 类中的名字只能看 不能操作
经验总结扩展阅读
- 温度升高电阻怎么变化
- 2023年属蛇人最佳结婚日子是哪几天 属蛇人结婚吉日查询
- 2023年适合属马人结婚的吉日查询 属马人结婚吉日查询
- 2023年适合属羊人结婚的吉日查询 属羊人结婚吉日查询
- 2023年属猪人结婚的良辰吉日查询 属猪人结婚吉日查询
- 属兔2023本命年年结婚好吗挑选良辰吉日结婚安全幸福
- 美赫吊顶属于几线品牌?
- 88年属龙的是什么命
- 沌口属于武汉哪个区
- 奥迪A3适合男人开吗