首页 > 编程语言 >[ Python ] 常用运算符对应的魔法方法

[ Python ] 常用运算符对应的魔法方法

时间:2024-06-02 23:21:51浏览次数:26  
标签:__ Python self 魔法 运算符 other

https://www.cnblogs.com/yeungchie/

Python中的运算符丰富多样,它们可以分为多个类别,包括算术运算符、比较运算符、逻辑运算符、位运算符、身份运算符、成员运算符等。每个运算符都有其对应的魔法方法(也称为特殊方法或dunder方法,即双下划线方法),这些方法在特定情况下会被Python调用来实现运算符的行为。下面是一些常见运算符及其对应的魔法方法:

算术运算符

  • + 加法:__add__(self, other)
  • - 减法:__sub__(self, other)
  • * 乘法:__mul__(self, other)
  • / 除法(Python 3 中为真除法):__truediv__(self, other)
  • // 整除:__floordiv__(self, other)
  • % 取模:__mod__(self, other)
  • ** 幂运算:__pow__(self, other[, modulo])
  • +(一元正号):__pos__(self)
  • -(一元负号):__neg__(self)
  • ~(按位取反,不常用):__invert__(self)

比较运算符

  • == 等于:__eq__(self, other)
  • != 不等于:__ne__(self, other)
  • < 小于:__lt__(self, other)
  • > 大于:__gt__(self, other)
  • <= 小于等于:__le__(self, other)
  • >= 大于等于:__ge__(self, other)

逻辑运算符

Python中没有直接的魔法方法对应逻辑运算符,逻辑运算通常通过andornot关键字实现

位运算符

  • & 按位与:__and__(self, other)
  • | 按位或:__or__(self, other)
  • ^ 按位异或:__xor__(self, other)
  • << 左移:__lshift__(self, other)
  • >> 右移:__rshift__(self, other)

身份运算符

  • is 没有直接对应的魔法方法,因为这是Python解释器直接处理的。
  • is not 同上。

成员运算符

  • in 没有直接对应的魔法方法,但可以通过重写__contains__(self, item)来影响in的判断逻辑。
  • not in 间接通过__contains__方法影响。

其他特殊方法

  • +(用于字符串拼接或列表合并):根据对象类型不同,可能调用__add__或特定类型的其他方法。
  • [](索引和切片):__getitem__(self, key)__setitem__(self, key, value)__delitem__(self, key)
  • ()(调用):__call__(self[, args...])

这些魔法方法允许你在自定义类中重载运算符,从而让类实例支持这些运算符的行为。需要注意的是,实现这些方法时应遵循运算符的常规语义,以保持代码的一致性和可预测性。

标签:__,Python,self,魔法,运算符,other
From: https://www.cnblogs.com/yeungchie/p/18227814

相关文章

  • 利用PlugLink平台实现Python自动化办公
    利用PlugLink平台实现Python自动化办公自动化技术已经成为提升效率和减少人力成本的关键。特别是利用AI和Python语言的强大功能,企业可以实现高度定制化的自动化工作流程。PlugLink作为一个开源的办公自动化平台,正是为了满足这一需求而生。本文将通过一个具体的Python案例,介......
  • Python使用BeautifulSoup爬取人人影视的详情页面
    importrequests,jsonfrombs4importBeautifulSoupif__name__=='__main__':url="https://yyets.com/movies/201565/"headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537......
  • 【Python基础】循环语句(5073字)
    文章目录@[toc]什么是循环Python中的循环方式while循环格式示例运行过程应用while循环嵌套示例1示例2for循环格式示例内置函数range()的用法range(x)range(x,y)range(x,y,z)应用break与continuebreakwhile循环中的break未使用break使用breakfor循环中的breakc......
  • python基础(习题、资料)
    免费提取资料: 练习、资料免费提取。持续更新迅雷云盘https://pan.xunlei.com/s/VNz6kH1EXQtK8j-wwwz_c0k8A1?pwd=rj2x#本文为Python的进阶知识合辑,包括列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)四种基本数据结构的介绍和实战案例分析。1、列表的简介列表(List)是一种用......
  • 天津科技-Python程序设计基础-数据结构-5
    编写函数avg(a),统计并返回元组a中所有奇数元素的平均值。在主程序中,从键盘输入(以空格分隔)包含若干个元素(数量不固定)的数值元组,调用avg()函数,计算并输出元组中所有奇数元素的平均值(保留2位小数)。输入格式:tuple(map(int,input().split()))输出格式"平均值为{:.2f}".format()......
  • 天津科技-Python程序设计基础-循环结构-5
    编写函数f(m,n),计算并返回。在主程序中输入m和n,调用函数f(),计算并输出函数值。输入格式:=map(int,input().split())输出格式:"{}".format()例如:输入1020输出8426deff(m,n):total=0forxinrange(m,n+1):total+=3*x**2+4*x+1r......
  • itertools: 一个实用的Python库
    很多人都致力于把Python代码写得更Pythonic,一来更符合规范且容易阅读,二来一般Pythonic的代码在执行上也更有效率。今天就先给大家介绍一个很Pythonic的Python系统库:itertools。itertools库迭代器(生成器)在Python中是一种很常用也很好用的数据结构,比起列表(list)来说,迭代器最大......
  • python自然语言处理实战:核心技术与算法 (涂铭,刘祥,刘树春)高清电子版pdf下载百度云
    书:pan.baidu.com/s/1rOoEvizAhkQyF8xScVh51w?pwd=8onw提取码:8onw我的阅读笔记:Python基础:为了进行NLP任务,首先需要掌握Python编程语言的基础知识。文本预处理:这包括文本清洗(如去除标点、停用词、特殊字符等)、文本分词(如中文分词)、文本向量化(如词袋模型、TF-IDF、Word2Vec等)。......
  • python系列&AI系列:Gradio库的安装和使用教程
    Gradio库的安装和使用教程Gradio库的安装和使用教程一、Gradio库的安装二、Gradio的使用1、导入Gradio库2、创建Gradio接口3、添加接口到Gradio应用4、处理用户输入和模型输出5、关闭Gradio应用界面三、Gradio的高级用法1、多语言支持2、自定义输入和输出格式3、模型版......
  • python系列&AIi系列(参考性极强):【完全攻略】Gradio:建立机器学习网页APP
    【完全攻略】Gradio:建立机器学习网页APP【完全攻略】Gradio:建立机器学习网页APP前言一、Gradio介绍以及安装1-1、Gradio介绍Gradio:1-2、安装二、快速开始(初步了解)2-1、简单小栗子2-2、多输入多输出2-3、简易聊天机器人三、关键技术3-1、带有样例的输入3-2、提示弹窗3-......