类 、面向对象 面向过程 __del__ __init__

Posted on 2018-04-12 23:30  lemon333  阅读(33)  评论(0)    收藏  举报

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()比实际个数大一

 

 

 

 

 


 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3