用python进行运算符重载的方法是什么?
Admin 2021-08-19 群英技术资讯 1088 次浏览
这篇文章给大家分享的是有关python进行运算符重载的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,有需要的朋友可以参考,接下来一起跟随小编看看吧。
python进行有理数运算时,希望用运算符(+ - * /)描述计算过程。只是用来写出更加自然的计算表达式。为此,python为所有算数运算符规定了特殊方法名。其中所有特殊的名字都以两个下划线开始,并以两个下划线结束,即:
当在Python中输入“a+b”时,程序发现使用了“+”运算符,因此就会调用“__add__”方法。
此时,若对自定义类中进行运算符的重载,则可以实现对类的打印、有理数运算等等。
class Size: def __init__(self, value): self._value = value def value(self): return self._value def __lt__(self, another): #由于 < 是一个二元运算符,因此会有 anothoer这一项的存在 cc = self.value() > another.value() return self.value() > another.value() # def __gt__(self, another): # gg = self._value < another.value() # return self._value < another.value() def __eq__(self, another): return self.value() == another.value() def __str__(self): return str(self.value()) a=Size(3) b=Size(2) print(a,b,a>b)
进行调试时,尽管没有对“>”运算符(对应的魔法方法是“__gt”)进行重载,但是运算到
print(a,b,a>b)
时,程序并不会报错,且仍然会调用重载后的"__lt__"。我个人理解是因为Python自动将“a>b”看成是“b<a”。若此时重载了“__gt__”,则程序不会去调用“__lt__”了。
补充:python中的运算符与表达式
Python是面向对象的编程语言,在Python中一切都是对象。对象由数据和行为两部分组成,而行为主要通过方法来实现,通过一些特殊方法的重写,可以实现运算符重载。
运算符也是表现对象行为的一种形式,不同类的对象支持的运算符有所不同,同一种运算符作用于不同的对象时也可能会表现出不同的行为,这正是“多态”的体现。
在Python中,单个常量或变量可以看作最简单的表达式,使用除赋值运算符之外的其他任意运算符和函数调用连接的式子也属于表达式
运算符优先级遵循的规则为:算术运算符优先级最高,其次是位运算符、成员测试运算符、关系运算符、逻辑运算符等,算术运算符遵循“先乘除,后加减”的基本运算原则。
虽然Python运算符有一套严格的优先级规则,但是强烈建议在编写复杂表达式时使用圆括号来明确说明其中的逻辑来提高代码可读性
(1)+运算符除了用于算术加法以外,还可以用于列表、元组、字符串的连接,但不支持不同类型的对象之间相加或连接。
(2)*运算符除了表示算术乘法,还可用于列表、元组、字符串这几个序列类型与整数的乘法,表示序列元素的重复,生成新的序列对象。字典和集合不支持与整数的相乘,因为其中的元素是不允许重复的。
(3)运算符/和//在Python中分别表示算术除法和算术求整商(floor division)
(4)%运算符可以用于整数或实数的求余数运算,还可以用于字符串格式化,但是这种用法并不推荐。
(5)**运算符表示幂乘
以上就是关于python进行运算符重载的介绍,希望对大家学习和理解python运算符重载有帮助,想要了解更多python运算符重载的内容,大家可以关注其他相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了聊聊机器学习的标准化、归一化、正则化、离散化和白化,帮助大家更好的理解和学习使用python进行机器学习,感兴趣的朋友可以了解下
这篇文章主要介绍了Python 中数组和数字相乘时的注意事项说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这篇文章主要介绍了python udp如何实现同时收发信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
匿名函数就是不需要显式的指定函数名,这篇文章给大家介绍的就是关于python匿名函数的内容,下文会详细介绍python匿名函数的定义、语法、使用场景、使用形式等等,对大家学习和理解python匿名函数有一定的帮助,感兴趣的朋友可以了解了解。
这篇文章主要介绍了通过Python实现创建语音识别控制系统,能利用语音识别识别说出来的文字,根据文字的内容来控制图形移动,感兴趣的同学可以关注一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008