1.今日内容
- 面向过程编程,函数式编程,面向对象编程
- 面向对象的结构
- 类的基本操作方法
- 实例化一个对象
- 对象操作类中的属性与方法
- 什么是self
2.具体内容
-
面向过程编程,函数式编程,面向对象编程
- 函数及之前的知识点,统称为:面向过程的程序设计
- 面向过程的程序设计缺点:代码重复率高,可读性差
- 面向对象:用一个类将相似功能的函数聚合,使代码更加清晰化,合理化
- 类:相似功能的集合体
- 对象:类的具体体现
- 函数及之前的知识点,统称为:面向过程的程序设计
-
面向对象的结构
class 类名: 属性 方法
- 类名要具有描述性,首字母需大写,并且不宜用“_”
-
类的基本操作方法
__dict__
:查看类中所有内容,并以字典形式返回
class Student: daily = '学习' examination = '考试' def __init__(self): self.n = 'haha' self.s = 'heihei' def work(self): print('上课') def homework(self): print('做作业')
-
类名调用类中的属性
-
使用
__dict__
print(Student.__dict__) {'__module__': '__main__', '__doc__': '\n 此类是构建学生类\n ', 'daily': '学习', 'examination': '考试', '__init__': <function Student.__init__ at 0x109a08b70>, 'work': <function Student.work at 0x109a08d08>, 'homework': <function Student.homework at 0x109a08d90>, '__dict__': <attribute '__dict__' of 'Student' objects>, '__weakref__': <attribute '__weakref__' of 'Student' objects>} print(Student.__dict__.['daily']) 学习
-
万能的点 .(增删改查)
print(Student.daily) #查 Student.cloth = '蓝色' #增 Student.examination = '不考试' #改 del Student.examination #删
-
类名调用类中的方法
-
类名.方法名() (但工作中一般不会这样使用)
Student.work()
-
实例化一个对象
-
类名() :实例化一个对象,它的本质是每个类中的一个特殊函数
class Student: daily = '学习' examination = '考试' def __init__(self,n,a,h): self.name = n self.age = a self.habby = h def work(self,c): self.cloth = c print(f'{self.name}上课') def homework(self): print('做作业') xiaohei = Student('小黑',18,'打球') xiaoming = Student('小明',18,'打球') print(xiaohei)#<__main__.Student object at 0x1031896d8> print(xiaoming)#<__main__.Student object at 0x4565896d8>
- Remark:
- 类的不同实例化在内存中对应不同的内存地址,即为互不影响的实例,即类中的属性方法均相同
- 实例化对象在内存中发生了三件事:
- 内存中创建一个对象空间
- 自动执行
__init__
方法,并且将对象空间传给self参数 - 执行
__init__
方法,并将对象空间封装其属性
- Remark:
-
-
对象对 类(查看)与对象(操作)中的属性与方法的使用
- 对象操作对象空间的属性 万能的点
class Student: daily = '学习' examination = '考试' def __init__(self): self.n = 'haha' self.s = 'heihei' def work(self): print('上课') def homework(self): print('做作业') obj = Student() obj.n = 'hahei' #改 obj.age = 18 #增 print(obj.s) #查 del obj.n #删
- 对象调用(查看)类中的属性
class Student: ''' 此类是构建学生类 ''' daily = '学习' examination = '考试' def __init__(self,n,a,h): self.name = n self.age = a self.habby = h def work(self): print('每天要上课') def homework(self): print('家庭作业') xiaohei = Student('小黑',18,'打球')
- 对象调用类中的方法
xiaohei.work()
-
什么是self
- Self :每个类中方法的第一个位置参数,通过实例化一个对象执行此方法,解释器就自动的将此对象空间当做实参传给self
- 类中的所有方法的第一个参数,一般都命名给self