1,面向过程: 所有的事情都是自己考虑的,从上往下逐个写代码 每个地方都要考虑到
2,面向对象:
找了个对象 让这个对象去做。 将数据与函数绑定一起进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程f.open

3,类
类是玩具模型 飞机图纸,,对象是看得见摸得着的玩具, 飞机


属性:特征
方法:功能

把一个现实生活的场景 描述成一个类去表达

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
定义一个类
把函数def放在了class里面 称为方法 在定义方法时需要写上self
类名最好用大驼峰
定义类之后不会执行类中的代码

创建一个对象
执行Cat() 内存给它一些空间 再返回对象引用

调用对象的方法

给对象添加属性
描述属性就是定义一个变量

获取对象的属性

创建多个对象
self 谁调用就指向谁 保证方法里面至少有一个参数 且这个参数是第一个 是用来传递当前这个对象的

_init_ 方法 (魔法方法:不需要调用方法直接执行
初始化 新手机默认设置 这个方法不用我调Python会自动调用 并把参数传给self
自动定义并调用属性
1,创建一个对象Cat()
2,python会自动调用_int_方法
3,返回创建的对象的引用给tom

将属性当做局部变量传到方法中

_str_方法
没有str方法时 打印显示的是地址
当自己想获取对象描述信息的时候用str


当只想取对象的描述信息时,Python解释器会自动调用str方法后 方法return的是什么 打出来的描述信息就是什么
全局变量 函数 属性 方法的联系和区别
相似:方法和函数间共享数据的时候 原来函数是全局变量 现在是属性、
不同:如果用函数不小心修改了全局变量,其他函数也变了 但是在一个对象里面方法再怎么改,其他对象里面不会发生变化
函数:把一些具有独立的功能封装起来了
类:把一些函数的功能和一些全局变量的功能封装起来

私有方法
如果一个方法前面有__,就说明这个方法比较重要,不想让在外面直接用,而是先通过另一个方法先验证



删除只是删除的引用
__del__方法
当引用计数变成0 (在程序临死之前)Python解释器会自动触发方法
如果在程序结束之前,把所有引用删了,那么在最后一次删除时会被调用
如果程序结束之前,没有把所有引用删了,等程序结束一刹那,会把程序运行期间所有对象全调用__del__方法

把 .getrefcount()里面的变量也算作一次引用
sys.getrefcount()比实际个数大一

浙公网安备 33010602011771号