明党参

首页 » 常识 » 诊断 » 什么是运算符重载,Python可重载运算
TUhjnbcbe - 2021/7/9 3:52:00
白癜风初期症状 http://m.39.net/pf/a_7696544.html
其实在Python内部,每种序列类型都是Python的一个类,例如列表是list类,字典是dict类等,这些序列类的内部使用了一个叫作“重载运算符”的技术来实现不同运算符所对应的操作。所谓重载运算符,指的是在类中定义并实现一个与运算符对应的处理方法,这样当类对象在进行运算符操作时,系统就会调用类中相应的方法来处理。这里给大家举一个与重载运算符相关的实例:

classMyClass:#自定义一个类def__init__(self,name,age):#定义该类的初始化函数self.name=name#将传入的参数值赋值给成员交量self.age=agedef__str__(self):#用于将值转化为字符串形式,等同于str(obj)return"name:"+self.name+";age:"+str(self.age)__repr__=__str__#转化为供解释器读取的形式def__lt__(self,record):#重载selfrecord运算符ifself.agerecord.age:returnTrueelse:returnFalsedef__add__(self,record):#重载+号运算符returnMyClass(self.name,self.age+record.age)myc=MyClass("Anna",42)#实例化一个对象Anna,并为其初始化mycl=MyClass("Gary",23)#实例化一个对象Gary,并为其初始化print(repr(myc))#格式化对象myc,print(myc)#解释器读取对象myc,调用reprprint(str(myc))#格式化对象myc,输出"name:Anna;age:42"print(mycmycl)#比较mycmycl的结果,输出Falseprint(myc+mycl)#进行两个MyClass对象的相加运算,输出"name:Anna;age:65"输出结果为:name:Anna;age:42name:Anna;age:42name:Anna;age:42Falsename:Anna;age:65这个例子中,MyClass类中重载了repr、str、、+运算符,并用MyClass实例化了两个对象myc和mycl。通过将myc进行repr、str运算,从输出结果中可以看到,程序调用了重载的操作符方法__repr__和__str__。而令myc和mycl进行号的比较运算以及加法运算,从输出结果中可以看出,程序调用了重载号的方法__lt__和__add__方法。那么,Python类支持对哪些方法进行重载呢?这个给大家提供一个表格(表1),列出了Python中常用的可重载的运算符,以及各自的含义。小编整理了一套python学习资料,需要的话可以私信

python技术大本营回复领取资料即可,欢迎大家
1
查看完整版本: 什么是运算符重载,Python可重载运算