1、attr 系列
2、item 系列
__ setitem __ (self,key,value):当对类中的某个属性进行"赋值"时触发的函数(只有使用字典赋值的方式时才会触发此方法的执行) 与Attr系列的区分: __ setattr __ (self):是在对象打点儿的方式赋值时,才会触发的方法
__ delitem __ (self,key):当类中的某个属性被删除时,触发此方法(只有使用del字典方式删除属性时,才会触发此方法)
与Attr系列的区分: __ delattr __ (self):使用del类打点儿属性的方式删除属性,才会触发此方法
getitem(self,item):当调用类中的属性或方法时触发此方法的执行(只在使用类[key]字典的方式调用时,才会触发此方法)
与Attr系列的区分:其实这里已经很明显了,getattr(self):是类打点儿调用且命名空间没有发现名字的情况下,触发此方法
3、slots
slots:其实就是将类中的名称锁定,实例化对象,只可以赋值和调用,不可以删除属性和增加新的属性
应用场景:当实例化几万个对象的时候,每个对象都会生成一个名称空间dict,而每一个名称空间都会各自占用一个内存,造成内存的浪费,用 slots,不用再产生 dict 了,省内存,对象的 dict 都统一用类的 dict,属性都是用 slots 给定义的
例1
例2
4、next 和 iter
5、del
这个是在回收实例化对象时触发执行的方法
每当 del 实例化对象时会触发
或者是程序结束时,会触发,总之就是实例化对象失效时都会执行del方法
注:此方法一般无须定义,因为Python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给Python解释器来执行,所以,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的
6、str
7、enter和exit
所谓上下文管理协议,就是咱们打开文件时常用的一种方法:with
__ enter __ (self):当with开始运行的时候触发此方法的运行
__ exit __ (self, exc_type, exc_val, exc_tb):当with运行结束之后触发此方法的运行
exc_type如果抛出异常,这里获取异常的类型
exc_val如果抛出异常,这里显示异常内容
exc_tb如果抛出异常,这里显示所在位置
用途或者说好处:
1.使用with语句的目的就是把代码块放入with中执行,with结束后,自动完成清理工作,无须手动干预
2.在需要管理一些资源比如文件,网络连接和锁的编程环境中,可以在exit中定制自动释放资源的机制,你无须再去关系这个问题,这将大有用处
例1
例2
8、doc
描述信息用的
9、call
对象后面加括号,触发执行。
注:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于 call 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()
领取专属 10元无门槛券
私享最新 技术干货