失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python方法与重载_python特殊方法和运算符重载(番外--重载)

python方法与重载_python特殊方法和运算符重载(番外--重载)

时间:2024-02-04 12:18:52

相关推荐

python方法与重载_python特殊方法和运算符重载(番外--重载)

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特殊方法和运算符重载(番外--重载)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。