python魔法函数

非数学运算类

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__函数

数学运算符


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值