首页 > 编程语言 >python中一些特殊方法及含义

python中一些特殊方法及含义

时间:2024-07-12 14:59:16浏览次数:17  
标签:__ 特殊 obj 运算 python 含义 运算符 other self

python中一些特殊方法及含义,后期会根据系统学习后修正补充归纳汇总

初始化和销毁:
__init__(self [,args...])   
    对象初始化,构造函数,在生成对象时调用,简单的调用方法: obj = className(args) 初始化方法,在创建对象时进行初始化操作    
__del__(self)               
    析构方法, 释放对象时使用,删除一个对象,简单的调用方法 : del obj  析构方法,在对象被销毁前调用    

字符串表示:
__repr__(self)           
    打印,转换,转化为供解释器读取的形式,简单的调用方法 : repr(obj)  
    返回对象的“官方”字符串表示,通常通过交互式解释器调用,对象字符串形式 
    返回对象的“官方”字符串表示,通常用于在交互式环境中显示对象。   
__str__(self)            
    用于将值转化为适于人阅读的形式,简单的调用方法 : str(obj)  
    返回对象的字符串表示,通常通过 str(obj) 或 print(obj) 调用,对象可读字符串形式
    返回对象的字符串表示,通常用于打印对象。   
    
5. 类型转换
实现诸如 float(),str() 等内置类型转换函数的行为的魔术方法
__int__(self)       实现 int(obj)  int 的类型转换 int
__long__(self)      long 的类型转换 Python3.x 版本已删除 long
__float__(self)     实现 float(obj)  float 的类型转换 float
__complex__(self)   复数类型转换 complex
__oct__(self)       8 进制类型转换   oct
__hex__(self)       16 进制类型转换  hex
__complex__()       实现复数 complex(obj)

一元运算符:
__neg__()          实现负号-运算,取负
__pos__()          实现加号+运算,取正
__abs__()          实现内置 abs() 函数的行为   ,实现 abs(obj),取绝对值
__invert__()        实现 ~ 运算符实现反转行为,实现取反~操作,取反  
__round__()         实现内置 round() 函数的行为   取小数点后几位
__trunc__()         实现 math.trunc(obj)  截断取整数部分,对正数相当于floor,对负数相当于ceil
__floor__()         实现 math.floor(obj)  取 向下四舍五入到最接近的整数
__ceil__()         实现 math.ceil(obj)   取 向上四舍五入到最接近的整数

比较运算(富比较):
__eq__(self, other)       定义相等比较运算符 ==    
__ne__(self, other)       定义不等比较运算符 !=    
__lt__(self, other)       定义小于比较运算符 <    
__gt__(self, other)       定义大于比较运算符 >    
__le__(self, other)       定义小于等于比较运算符 <=    
__ge__(self, other)       定义大于等于比较运算符 >=    

数值运算:
__add__(self, other)              定义加法运算符 +          加运算                                            
__sub__(self, other)              定义减法运算符 -          减运算                                                  
__mul__(self, other)              定义乘法运算符 *          乘运算
__truediv__(self, other)           定义真除法运算符 /         除运算
__floordiv__(self, other)          定义整除运算符 //         整除运算
__mod__(self, other)              定义取模运算符 %          求余运算
__pow__(self, other[, modulo])      定义指数运算符 **         乘方     
        (特定算术运算符 __r…… 反向数学运算符  __i……自增运算符(+= -= 等等)  如 __radd__   __iadd__  所有下方方法都有---------不常用):
反向数学运算符: __r…… 
__radd__(self, other)             右加法运算(反向加法)
__rsub__(self, other)             右减法运算(反向减法)
__rmul__(self, other)             右乘法运算(反向乘法)
__rmatmul__(self, other)           右矩阵乘法运算(反向矩阵乘法)
__rtruediv__(self, other)          右真除法运算(反向真除法)
__rfloordiv__(self, other)         右整除法运算(反向整除法)
__rmod__(self, other)             右取模运算(反向取模)
__rdivmod__(self, other)           右取模运算(反向取模)
__rpow__(self, other[, modulo])     右幂运算(反向幂运算)
__rlshift__(self, other)           右移位运算(反向左移位)
__rrshift__(self, other)           右移位运算(反向右移位)
__rand__(self, other)             右按位与运算(反向按位与)
__rxor__(self, other)             右按位异或运算(反向按位异或)
__ror__(self, other)              右按位或运算(反向按位或)
自增运算符 :__i…… 实现 += -=等自增运算的魔术方法
__iadd__(self, other)         加法    +=
__isub__(self, other)         减法    -=
__imul__(self, other)         乘法    *=
__idiv__(self, other)         除法    /=
__ifloordiv__(self, other)     整数除法   //=
__imod__(self, other)         取余数    %=
__idivmod__(self, other)       使用 divmod() 内置函数实现长除法行为  divmod(a, b)
__ipow__(self, other)         指数运算   **=
__ilshift__(self, other)       位运算 左移     <<=
__ishift__(self, other)       位运算 右移     >>=
__iand__(self, other)         位运算,并  &=
__ior__(self, other)          位运算,或  |=
__ixor__(self, other)         位运算,异或 ^=

容器操作:
__len__(self)                       定义内置函数 len()        获得长度(序列中元素的个数)       
__getitem__(self, key)              定义索引访问操作符 []     按照索引获取值 切片、抽取功能 
__setitem__(self, key, value)       定义索引赋值操作符 []      按照索引赋值   索引赋值              
__delitem__(self, key)              定义删除操作符 del obj[key]   按照索引删除值
__iter__()                         定义对象迭代行为          返回一个迭代器
__next__                            实现迭代器协议            返回迭代器的下一个元素   
__contains__                        实现成员检测              检查对象是否包含某个元素 in 
__reversed__()                      实现逆向迭代              逆序,倒序
__get__()                                                  等描述器特殊方法 
__index__(self)                     对象的索引值 当在切片表达式中使用对象时,实现到 int 的类型转换。如果您定义可能用于切片的自定义数字类型,则应定义 __index__ . 


属性访问:
__getattr__(self, name)             获取对象的属性。在访问不存在的属性时调用,等自定义属性访问特殊方法    
__setattr__(self, name, value)      设置对象的属性。在设置属性时调用    
__delattr__(self, name)             删除对象的属性。在删除属性时调用    
__cmp__ (self, x)         对象比较,简单的调用方法 : cmp(obj, x)  比较运算                  
__call__                函数调用,模拟可调用对象
__new__()          创造类实例
__subclasses__()    子类的弱引用列表       
__bytes__()         对象的字节串表示
__format__()        对象格式化字符
__hash__()         对象的哈希值
__bool__()         对象布尔值
__dir__()          对象的属性和方法列表
__length_hint__()   对象长度估计值 
__missing__()       处理字典缺失键

__match_args__      支持结构化模式匹配

"""
python中一些特殊方法及含义,后期会根据系统学习后修正补充归纳汇总

初始化和销毁:
__init__(self [,args...])   
    对象初始化,构造函数,在生成对象时调用,简单的调用方法: obj = className(args) 初始化方法,在创建对象时进行初始化操作    
__del__(self)               
    析构方法, 释放对象时使用,删除一个对象,简单的调用方法 : del obj  析构方法,在对象被销毁前调用    

字符串表示:
__repr__(self)           
    打印,转换,转化为供解释器读取的形式,简单的调用方法 : repr(obj)  
    返回对象的“官方”字符串表示,通常通过交互式解释器调用,对象字符串形式 
    返回对象的“官方”字符串表示,通常用于在交互式环境中显示对象。   
__str__(self)            
    用于将值转化为适于人阅读的形式,简单的调用方法 : str(obj)  
    返回对象的字符串表示,通常通过 str(obj) 或 print(obj) 调用,对象可读字符串形式
    返回对象的字符串表示,通常用于打印对象。   
    
5. 类型转换
实现诸如 float(),str() 等内置类型转换函数的行为的魔术方法
__int__(self)       实现 int(obj)  int 的类型转换 int
__long__(self)      long 的类型转换 Python3.x 版本已删除 long
__float__(self)     实现 float(obj)  float 的类型转换 float
__complex__(self)   复数类型转换 complex
__oct__(self)       8 进制类型转换   oct
__hex__(self)       16 进制类型转换  hex
__complex__()       实现复数 complex(obj)

一元运算符:
__neg__()          实现负号-运算,取负
__pos__()          实现加号+运算,取正
__abs__()          实现内置 abs() 函数的行为   ,实现 abs(obj),取绝对值
__invert__()        实现 ~ 运算符实现反转行为,实现取反~操作,取反  
__round__()         实现内置 round() 函数的行为   取小数点后几位
__trunc__()         实现 math.trunc(obj)  截断取整数部分,对正数相当于floor,对负数相当于ceil
__floor__()         实现 math.floor(obj)  取 向下四舍五入到最接近的整数
__ceil__()         实现 math.ceil(obj)   取 向上四舍五入到最接近的整数

比较运算(富比较):
__eq__(self, other)       定义相等比较运算符 ==    
__ne__(self, other)       定义不等比较运算符 !=    
__lt__(self, other)       定义小于比较运算符 <    
__gt__(self, other)       定义大于比较运算符 >    
__le__(self, other)       定义小于等于比较运算符 <=    
__ge__(self, other)       定义大于等于比较运算符 >=    

数值运算:
__add__(self, other)              定义加法运算符 +          加运算                                            
__sub__(self, other)              定义减法运算符 -          减运算                                                  
__mul__(self, other)              定义乘法运算符 *          乘运算
__truediv__(self, other)           定义真除法运算符 /         除运算
__floordiv__(self, other)          定义整除运算符 //         整除运算
__mod__(self, other)              定义取模运算符 %          求余运算
__pow__(self, other[, modulo])      定义指数运算符 **         乘方     
        (特定算术运算符 __r…… 反向数学运算符  __i……自增运算符(+= -= 等等)  如 __radd__   __iadd__  所有下方方法都有---------不常用):
反向数学运算符: __r…… 
__radd__(self, other)             右加法运算(反向加法)
__rsub__(self, other)             右减法运算(反向减法)
__rmul__(self, other)             右乘法运算(反向乘法)
__rmatmul__(self, other)           右矩阵乘法运算(反向矩阵乘法)
__rtruediv__(self, other)          右真除法运算(反向真除法)
__rfloordiv__(self, other)         右整除法运算(反向整除法)
__rmod__(self, other)             右取模运算(反向取模)
__rdivmod__(self, other)           右取模运算(反向取模)
__rpow__(self, other[, modulo])     右幂运算(反向幂运算)
__rlshift__(self, other)           右移位运算(反向左移位)
__rrshift__(self, other)           右移位运算(反向右移位)
__rand__(self, other)             右按位与运算(反向按位与)
__rxor__(self, other)             右按位异或运算(反向按位异或)
__ror__(self, other)              右按位或运算(反向按位或)
自增运算符 :__i…… 实现 += -=等自增运算的魔术方法
__iadd__(self, other)         加法    +=
__isub__(self, other)         减法    -=
__imul__(self, other)         乘法    *=
__idiv__(self, other)         除法    /=
__ifloordiv__(self, other)     整数除法   //=
__imod__(self, other)         取余数    %=
__idivmod__(self, other)       使用 divmod() 内置函数实现长除法行为  divmod(a, b)
__ipow__(self, other)         指数运算   **=
__ilshift__(self, other)       位运算 左移     <<=
__ishift__(self, other)       位运算 右移     >>=
__iand__(self, other)         位运算,并  &=
__ior__(self, other)          位运算,或  |=
__ixor__(self, other)         位运算,异或 ^=

容器操作:
__len__(self)                       定义内置函数 len()        获得长度(序列中元素的个数)       
__getitem__(self, key)              定义索引访问操作符 []     按照索引获取值 切片、抽取功能 
__setitem__(self, key, value)       定义索引赋值操作符 []      按照索引赋值   索引赋值              
__delitem__(self, key)              定义删除操作符 del obj[key]   按照索引删除值
__iter__()                         定义对象迭代行为          返回一个迭代器
__next__                            实现迭代器协议            返回迭代器的下一个元素   
__contains__                        实现成员检测              检查对象是否包含某个元素 in 
__reversed__()                      实现逆向迭代              逆序,倒序
__get__()                                                  等描述器特殊方法 
__index__(self)                     对象的索引值 当在切片表达式中使用对象时,实现到 int 的类型转换。如果您定义可能用于切片的自定义数字类型,则应定义 __index__ . 


属性访问:
__getattr__(self, name)             获取对象的属性。在访问不存在的属性时调用,等自定义属性访问特殊方法    
__setattr__(self, name, value)      设置对象的属性。在设置属性时调用    
__delattr__(self, name)             删除对象的属性。在删除属性时调用    
__cmp__ (self, x)         对象比较,简单的调用方法 : cmp(obj, x)  比较运算                  
__call__                函数调用,模拟可调用对象
__new__()          创造类实例
__subclasses__()    子类的弱引用列表       
__bytes__()         对象的字节串表示
__format__()        对象格式化字符
__hash__()         对象的哈希值
__bool__()         对象布尔值
__dir__()          对象的属性和方法列表
__length_hint__()   对象长度估计值 
__missing__()       处理字典缺失键

__match_args__      支持结构化模式匹配
"""

标签:__,特殊,obj,运算,python,含义,运算符,other,self
From: https://blog.csdn.net/m0_61566562/article/details/140229891

相关文章

  • [1032] SQLAlchemy—the magical bridge between Python and databases!
    Ah,SQLAlchemy—themagicalbridgebetweenPythonanddatabases!......
  • python--实验10 封装,继承,多态
    目录知识点 封装(PART1)继承(PART2)多态(PART3)动态性(PART4)小结知识拓展实验 知识点 封装(PART1)定义:封装是将数据(属性)和行为(方法)组合在一起的过程,通常封装在类中。目的:保护数据不被外部直接访问和修改,提高程序的安全性和可维护性。类和对象:......
  • 毕业设计之python语音数据及标注核对审核系统设计与实现(python完整源码+说明文档+演示
    1项目介绍基于python的语音标注及审核系统的目的就是在于建立属于自己的一套识别系统,在日常的工作中,语音识别是一件非常重要的事情,比如说企业或事业单位当中。自动整理语音数据,保存到数据库当中,实现数据对应一致性,这样可以很大程度地进行数据的校验。2、项目技术项目后......
  • 利用Python实现分析给定文本字符串中的字符统计信息
    设计一个名为TextAnalyzer的Python类,该类用于分析给定文本字符串中的字符统计信息。类应具有以下功能:初始化:类初始化时接受一个字符串参数text,并将其存储为类的属性。字符计数:实现一个方法count_characters(),返回一个字典,其中键为文本中出现的不同字符(包括空格和标点符......
  • Python批量下载微信公众号内的文字和图片
    mportctypesimportsubprocessimportsysimportosimportrandomimportreimportuuidimportshutilimportdatetimeimportrequestsimportsecretsfrombs4importBeautifulSoupfromqiniuimportAuth,put_file,BucketManager,urlsafe_base64_encodeimpor......
  • Python爬虫抓取笔趣阁小说(含源码)
    学习一下思路:1.我们进入需要爬取到的小说界面,右键开发者工具,选中元素显示,然后找到需要爬取的小说章节模块在代码中的位置。将a标签中的文本内容复制,然后ctrl+u打开源代码ctrl+f将刚刚的文本内容复制查找是否有这个模块。(比较爽的是,刚好这里有,可以不需要去查看网络请求......
  • python编程实例 计算输入内容中数字、字母、空格、其它字符的数量 两种方式实现
    第一种方式为通过python自带函数实现第二种方式为通过ascii码实现点击查看代码#字符串构成,统计出字符串中#空格英文字符数字其它字符的数量'''使用自带函数a=input("请输入:")kong=0ying=0shu=0qita=0foriinrange(len(a)):if(a[i].isspace()):kong......
  • 【PYTHON】运行环境配置之安装tar.gz压缩包
    我们经常会遇到从PYPI网站下载的安装文件没有whl格式,这时我们需要安装tar.gz格式的安装文件。比如图1所示的文件类型,这时我们需要先将该压缩包解压缩得到图2。图1图2接着,我们通过win+r,再输入cmd的方式得到运行窗口如图3。图3接着,我们利用pipinstall+解压后文件夹路......
  • python爬虫案例——5行代码爬取音乐资源
    都2024年了,不会还有人在花钱用VIP下载音乐吧~每天一个小妙招,教你5行代码轻松白嫖资源小白须知电脑需配备python解释器、安装一款编程软件,例如VisualStudioCode、pycharm等VisualStudioCode官网:https://code.visualstudio.com/pycharm社区版:https://www.jetbrains.com......
  • python-小理与他的画(赛氪OJ)
    [题目描述]小理是个画家,他希望有一天他的画能让心仪的她看到。只是后来她有了他,他却只有他的画,他望着他的画,默默的发呆。可惜做题的你,画不出他画的她,所以,我们只好画点简单的画,或许有一天,你就会遇到画里她/他吗?因此我们规定画画的内容:输入一个正整数 n(n为奇数),输出高度为 n......