非数学运算类
1.字符串表示
__ repr__;__ str__:
当未重写两方法时,都会打印“类名 + object at +内存地址”的形式
当仅重写__ str__方法时,__ repr__打印内容不会受__ str__影响
仅重写__ repr__后,两者打印内容与重写后的__ repr__一致
各自重写
2.集合序列相关
__ len__:相当于len()方法
__ getitem__:相当于array[i],通过索引访问元素
__ delitem__:通过索引删除元素
__ contains__:是否包含某元素
3.迭代相关
__ iter__:定义该方法,则类变为可迭代类,类就可以被用于for循环方法内
__ next__:定义该方法猴,该类变为迭代器
关于生成器,关键字yeild。是一种特殊的迭代器,yield修饰的方法直接调用是不会被执行的,需要触发__ next__方法执行
4.可调用
__ call__:用于重载类的()运算符
5.with上下文管理器:当使用with时,量函数必须在类中同时定义,否则会异常
__ enter__:在with as 语句中负责返回一个值赋给as后的对象
__ exit__(self, exc_type, exc_val, exc_tb):with语句后的类内部方法异常猴,会调用该函数方法
6.__abs__函数、__bool__函数、__int__函数、__float__函数、__hash__函数和__index__函数:
7.元类相关
__ new__:实例化类的静态方法,优先__ init__调用,同时出现时,仅new方法会被执行,对于python中的不可修改类,我们可以通过new方法重写,达成修改值得目的
__ init__:初始化类时执行,对象被创建时。
8.属性相关
__ getattr__:当类中不存在某个属性时就会调用该方法抛出异常
__ setattr__:为实例类赋加属性
__ dict__:字典形式展示所有属性
__ getattribute__:属性访问拦截器,当类被实例化的猴且调用属性或方法时,会优先走该方法,属性或方法将不再被执行
__ dir__:用于展示所有的属性名和方法名
9. 属性描述符
__ get__():调用一个属性时,触发
__ set__():为一个属性赋值时,触发
__ delete__():采用del删除属性时,触发
10.协程类
__await__函数、__aiter__函数、__anext__函数、__aenter__函数和__aexit__函数
数学运算符
略