面向对象之初识
-
面向过程编程vs函数式编程vs面向对象编程
s1 = 'fdskljfsda' count = 1 for i in s1: count += 1 l1 = [1,2,3,4,5] count = 1 for i in l1: count += 1 def my_len(a): count = 1 for i in a: count += 1 提高代码的可读性,减少了代码的重复性.... 上面统称为面向过程式编程. 面向过程式编程: 好处: 出色的完成你之前布置的所有的需求. 坏处: 但凡更改或者增加一条需求,可能整个项目都随之改变.
-
面向对象的结构
1. 类是相似功能的集合体. 2. 类 你要站在上帝的角度去考虑问题. 类: 具有相似功能和特性的一类事物. 对象:类的具体体现. 一定要有宏观的概念,区分类与对象. 类的第二个优点: 你要站在上帝的角度去考虑,类一个公共模板,对象是从这个公共的模板产出的. 结构上分析: class Student: daily = '学习' examination = '考试' def work(self): print('每天要上课') def homework(self): print('家庭作业') Human 类名要具有描述性,类名首字母大写,类名不宜用_
-
从类名的角度使用类
类名调用类中的属性
类名调用类中的方法
class Student: """ 此类是构建学生类 """ daily = '学习' examination = '考试' def work(self): print('每天要上课') def homework(self): print('家庭作业') 类名的角度调用类中的属性. 1. 查看类中的所有的内容. 类名.__dict__只用于获取类中的全部. print(Student.__dict__) print(Student.__dict__['daily']) 2. 万能的 .点. print(Student.daily) # 查 Student.cloth = '校服' # 增 print(Student.__dict__) Student.examination = '不考试!' # 改 print(Student.examination) del Student.daily # 删 print(Student.__dict__) 一般类中的属性都是通过类名.的方式去操控的. 类名的角度调用类中的方法.(一般类中的方法(除去类方法,静态方法外)不通过类名调用) Student.work(5565) # 工作中不用类名调用
-
实例化一个对象
实例化对象发生了三件事
对象调用对象的属性
对象调用类中的属性
对象调用类中的方法
class Student: """ 此类是构建学生类 """ daily = '学习' examination = '考试' def __init__(self,n,a,h): # self.n = '小黑' # self.sex = '随便' self.name = n self.age = a self.hobby = h def work(self,c): # self.color = '绿色' self.color = c print(f'{self.name}每天要上课') def homework(self): # 利用self 对象空间,为所欲为 print('家庭作业') # obj = Student() # 类名() 过程就叫做实例化过程,实例化一个对象 # print(obj) # 对象,实例 # obj1 = Student() # print(obj1) # obj = Student() # print(obj) # 实例化一个对象时发生了三件事: # 1. 在内存中创建一个对象空间. # 2. 自动执行__init__方法,并且将对象空间传给self参数. # 3. 执行__init__方法里面的代码,给对象空间封装其属性. # 从对象角度研究类: # 对象操作对象里面的属性. # obj = Student() # print(obj) # 对象查看全部属性 # print(obj.__dict__) # 对象可以操作对象空间的属性 万能的点 # obj = Student() # # obj.age = '29' # 增 # # del obj.n # 删 # # obj.sex = '女'# 改 # print(obj.n) # 查 # print(obj.__dict__) # liye = Student('小黑',21,'洗头') # mc_sq = Student('骚强',18,'高端会所') # print(liye.__dict__) # print(mc_sq.__dict__) # 对象查看类中的属性. # mc_sq = Student('骚强',18,'高端会所') # # print(mc_sq.daily) # mc_sq.daily = '骚麦' # print(mc_sq.daily) # print(mc_sq.__dict__) # 对象调用类中的方法 liye = Student('小黑',21,'洗头') # print(liye.__dict__) # liye.work() liye.work('绿油油') print(liye.__dict__)
-
什么是self?
self 就是类中方法的第一个位置参数, 如果通过对象执行此方法,解释器就自动的将此对象空间当做实参传给self. 约定俗称: 类中的方法第一个参数一般都设置成self.
-
一个类可以实例化多个对象