python的运算符实际上是通过对象的特殊方法实现的
【例如】
a=20
b=30
python boolean?c=a+b
d=a.__add__(b)
print("c=",c)
print("d=",d)
执行返回
重载关系运算符一般都返回、c= 50
d= 50
常见的特殊方法统计说明
方法
说明
流运算符只能重载为,例子
__init__
构造方法
对象创建:p=Person()
__del__
python 异步、析构方法
对象回收
__repr__,__str__
打印,转换
print(a)
重载流运算符。__call__
函数调用
a()
__getattr__
点号运算
python async,a.xxx
__getitem__
索引运算
a[key]
__setitem__
python重写、索引赋值
a[key]=value
__len__
长度
ken(a)
python 重载,每一个运算符实际都对应了相应的方法,如
运算符
特殊方法
说明
运算符+
c重载,__add__
加法
运算符-
__sub__
减法
重载输入运算符?__it__,__le__,__eq__
比较运算符
>,>=,!=
__gt__,__ge__,__ne__
|,^,&
python重载和重写的区别,__or__,__xor__,__and__
或,异或,与
<>
__lshift__,__rshitf__
左移,右移
c++重载,*,/,%,//
__mul__,__turediv__,__mod__.__floordiv__
乘,浮点数,模运算(取余),整数除
**
__pow__
Python struct、指数运算
可以重写上面的特殊方法,即实现了“运算符的重载”
【例子】
#测试运算符重载,重写即重载
class Person:
通俗python运算符重载。def __init__(self,name):
self.name=name
#重写加法
def __add__(self, other):
if isinstance(other,Person):#判断是否同类对象
return "{}{}".format(self.name,other.name)
else:
return '不是同类型,不能相加'
# 重写乘法
def __mul__(self, other):
if isinstance(other, int): # 判断是否是整数型
return self.name*other
else:
return '不是同类型,不能乘法'
if __name__ == '__main__':
#重载加法
p1=Person('张三')
p2=Person('张三三')
print(p1+p2)
# 重载乘法
print(p1*5)
执行返回
本文地址:https://blog.csdn.net/qq_38934189/article/details/109033535
希望与广大网友互动??
点此进行留言吧!
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态