面向对象和面向过程
面向过程
面向对象
特征
封装
继承
多态
面向对象的组成
类
具有相同特征和行为的事物,是一个抽象的概念
对象
对象是通过类来创建的出来的一个实例,是具体存在的事物
属性
就是特征,用于描述一类事物的名词
方法
就是行为 ,用于描述一类事物的行为的动词
封装
类
定义类
使用关键字class
类名要符合标识符命名规则
给对象添加属性
__init__ 魔法方法
self.属性名 = 值
self
类定义的一个方法。默认参数有一个形参self
通过哪个对象去调用方法,方法中的self就是哪个对象
self不是关键字,可以用其他合法变量名代替
对象
创建对象
对象名 = 类名()
添加属性
对象名.属性名 = 值
注:如果属性名本身就存在,就是修改对应的值,如果不存在就是添加一个新的属性
获取属性
类的外部获取属性
对象名.属性名
类的内部获取属性
self.属性名
调用方法
属性名.方法名()
可以通过 对象名.方法名()的方法调用类中封装的方法,本质就是调用类中的函数
魔法方法
在python中,类中定义的方法,__方法名————(),满足一定条件,会自动调用
__init__
在创建一个对象的时候,此方法会自动调用
使用
在创建对象的同时,给对象添加属性
子主题 2
注意点
如果在方法中有出来self之外的形参,那么在创建对象的时候,就需要传递对应的实参
__str__
自动调用
直接输出对象的时候print()
将对象转换为字符串str(对象)
调用时间
直接输出对象的时候,需要显示对象的一些信息
需要将对象转换为字符串的时候
注意点
必须要有返回值return,且返回必须为字符串
如果类中没有定义改方法,print输出的会是对象的引用地址
__repr__
使用方法和str一样
和str的区别
当需要将对象放在容器里面输出的时候,使用repr
__del__
自动调用
对象引用计数为0的时候
当程序执行结束的时候,内存的回收机制,在程序中产生的变量,对象等都会销毁。
使用时间
删除一个对象的时候
注意点
对象引用计数为0的时候才会调用