首页 > 编程语言 >python 魔法函数

python 魔法函数

时间:2024-09-06 15:52:47浏览次数:5  
标签:__ 函数 python 魔法 运算符 Python str

概述

魔法函数(Magic Methods),是Python的一种高级语法,允许在类中自定义函数(函数名格式一般为__xx__),并绑定到类的特殊方法中。

比如在类A中自定义__str__()函数,则在调用str(A())时,会自动调用__str__()函数,并返回相应的结果。在我们平时的使用中,可能经常使用__init__函数(构造函数)和__del__函数(析构函数),其实这也是魔法函数的一种。

  • Python中以双下划线(xx)开始和结束的函数(不可自己定义)为魔法函数。
  • 调用类实例化的对象的方法时自动调用魔法函数。
  • 在自己定义的类中,可以实现python的内置函数

常见魔法函数:非数学运算

字符串表示:

__repr__函数和__str__函数

集合、序列相关:

__len__函数、__getitem__函数、__setitem__函数、__delitem__函数和__contains__函数

迭代相关:

__iter__函数和__next__函数

可调用:

__call__函数

with上下文管理器:

__enter__函数和__exit__函数

数值转换:

__abs__函数、__bool__函数、__int__函数、__float__函数、__hash__函数和__index__函数

元类相关:

__new__函数和__init__函数

属性相关:

__getattr__函数、__setattr__函数、__getattribute__函数、__setattribute__函数和__dir__函数

属性描述符:

__get__函数、__set__函数和__delete_函数

协程:

__await__函数、__aiter__函数、__anext__函数、__aenter__函数和__aexit__函数

常见魔法函数:数学运算

一元运算符:

neg (-)、pos (+)和__abs__函数

二元运算符:

lt (<),le (<=),eq (==),ne (!=),gt (>)和__ge__ (>=)

算术运算符:

add (+)、sub (-)、mul (*)、truediv (/)、floordiv (//)、mod (%)、divmod 或divmod()、pow 或pow() (**)和__round__ 或round()

反向算术运算符:

raddrsubrmulrtruedivrfloordivrmodrdivmod__和__rpow

增量赋值算术运算符:

iaddisubimulifloordiv__和__ipow

位运算符:

invert (~)、lshift (<<)、rshift (>>)、and (&)、or (|)和__xor__ (^)

反向位运算符:

rlshiftrrshiftiandixor__和__ior

增量赋值运算符:

ilshiftirshiftiandixor__和__ior

其他魔法函数

__ unicode__()函数,__ delattr__()函数, __ del__()函数, dict()函数,all()函数

参考文档:
Python:实例讲解Python中的魔法函数(高级语法)

标签:__,函数,python,魔法,运算符,Python,str
From: https://www.cnblogs.com/lanjianhua/p/18400399

相关文章

  • 记录BUUCTF 中 的一道hook掉函数地址的题目
    题目[Zer0pts2020]easystrcmp1https://files.buuoj.cn/files/2961ba55f464e750aca703838dfca234/easy_strcmp_e1a6208fde4f52fd0c653c0b7e8ff614.tar.gz刚开始在main函数中发现if(!strcmp(a2[1],"zer0pts{********CENSORED********}"))puts("Correct!......
  • 20240906_150054 python 内容对齐方式 format
    format左右中对齐让数据左对齐"{:!<30}".format(数据)让数据右对齐"{:!>30}".format(数据)让数据居中对齐"{:!^30}".format(数据)......
  • 20240906_150844 python 槽的进制转换
    十进制转二进制b是bit的意思比特十进制转八进制十进制转16进制记忆b,二进制o,八进制x,十六进制......
  • 在 Python 中使用公共类处理接口请求的响应结果
    引言在现代软件开发中,API接口请求和处理响应结果是非常常见的操作。无论是在与外部服务的集成、处理第三方数据,还是构建微服务架构的系统,开发人员通常都需要频繁处理HTTP请求以及对应的响应数据。在Python中,很多开发者使用requests库来发送HTTP请求。尽管requests是一个......
  • python 多进程的 Process 和 Queue 的使用
    QuestionfrommultiprocessingimportProcess,Queue解释下这个多进程AnswerfrommultiprocessingimportProcess,Queue是用于多进程处理的模块。详细解释多进程:multiprocessing模块提供了类似于threading模块的API,但它使用的是进程而不是线程。每个进程都有自己的......
  • 20240906_144853 python 应用题 工作统计
    ......
  • 例2.12 分别编写求n!和输出斐波那契数列的函数,并用两个函数进行测试
    例2.12分别编写求n!和输出斐波那契数列的函数,并用两个函数进行测试2.12.1deffactorial(n):r=1whilen>1:r*=nn-=1returnrdeffib(n):a,b=1,1whilea<n:print(a,end="")a,b=b,a+bprint('%d!=%d'%(......
  • 高等数学 1.1 映射与函数
    文章目录一、映射映射概念逆映射与复合映射二、函数函数概念函数的几种特性(1)函数的有界性(2)函数的单调性(3)函数的奇偶性(4)函数的周期性反函数与复合函数反函数复合函数函数的运算初等函数基本初等函数初等函数双曲函数与反双曲函数一、映射映射概念定义设......
  • 在Python中如何输出变量的值?
    在Python中,变量是一个存储值的保留内存位置,通过变量名可以在整个代码中引用这个值,变量的命名通常使用字母+数字的形式,那么如何使用Python输出变量的值?我们一起来看看吧。在Python中,输出变量的值有两种常见方法:1、print()函数print()函数用于在控制台中输出信息。......
  • 高等数学 1.1 映射与函数
    目录一、映射映射概念逆映射与复合映射二、函数函数概念函数的几种特性(1)函数的有界性(2)函数的单调性(3)函数的奇偶性(4)函数的周期性反函数与复合函数反函数复合函数函数的运算初等函数基本初等函数初等函数双曲函数与反双曲函数一、映射映射概念定义设\(X\),\(Y\)是两个非空......