python的运算符实际上是通过对象的特殊方法实现的
【例如】
a=20
b=30
c=a+b
d=a.__add__(b)
print("c=",c)
print("d=",d)
执行返回
c= 50
d= 50
常见的特殊方法统计说明
方法
说明
例子
__init__
构造方法
对象创建:p=Person()
__del__
析构方法
对象回收
__repr__,__str__
打印,转换
print(a)
__call__
函数调用
a()
__getattr__
点号运算
a.xxx
__getitem__
索引运算
a[key]
__setitem__
索引赋值
a[key]=value
__len__
长度
ken(a)
每一个运算符实际都对应了相应的方法,如
运算符
特殊方法
说明
运算符+
__add__
加法
运算符-
__sub__
减法
__it__,__le__,__eq__
比较运算符
>,>=,!=
__gt__,__ge__,__ne__
|,^,&
__or__,__xor__,__and__
或,异或,与
<>
__lshift__,__rshitf__
左移,右移
*,/,%,//
__mul__,__turediv__,__mod__.__floordiv__
乘,浮点数,模运算(取余),整数除
**
__pow__
指数运算
可以重写上面的特殊方法,即实现了“运算符的重载”
【例子】
#测试运算符重载,重写即重载
class Person:
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)
执行返回
本文地址:/qq_38934189/article/details/109033535
希望与广大网友互动??
点此进行留言吧!
如果觉得《python方法与重载_python特殊方法和运算符重载(番外--重载)》对你有帮助,请点赞、收藏,并留下你的观点哦!