导语:
本文主要介绍了关于什么叫Python运算符重载的相关知识,包括python基础重载方法,以及python重载加法运算符这些编程知识,希望对大家有参考作用。
什么叫Python运算符重载
Python中的每种数据类型都有自己独特的操作方法。比如list类型支持直接加法实现添加元素的功能,string类型支持直接加法实现字符串拼接功能。也就是说,同一个运算符对于不同的序列类型有不同的含义。
推荐学习《
》。
在 Python 内部,每个序列类型都是 Python 的一个类。例如,列表是列表类,字典是dict类等。这些序列类使用一种称为“重载运算符”的技术来实现不同的运算符。相应的操作。
所谓重载运算符,是指在类中定义并实现一个与运算符对应的处理方法,使得类对象在进行运算符操作时,系统会调用类中对应的方法进行处理。
重载运算符示例:
class MyClass: #自定义一个类
def __init__(self, name , age): #定义该类的初始化函数
self.name = name #将传入的参数值赋值给成员交量
self.age = age
def __str__(self): #用于将值转化为字符串形式,等同于 str(obj)
return "name:"+self.name+";age:"+str(self.age)
__repr__ = __str__ #转化为供解释器读取的形式
def __lt__(self, record): #重载 self<record 运算符
if self.age < record.age:
return True
else:
return False
def __add__(self, record): #重载 + 号运算符
return MyClass(self.name, self.age+record.age)
myc = MyClass("Anna", 42) #实例化一个对象 Anna,并为其初始化
mycl = MyClass("Gary", 23) #实例化一个对象 Gary,并为其初始化
print(repr(myc)) #格式化对象 myc,
print(myc) #解释器读取对象 myc,调用 repr
print (str (myc)) #格式化对象 myc ,输出"name:Anna;age:42"
print(myc < mycl) #比较 myc<mycl 的结果,输出 False
print (myc+mycl) #进行两个 MyClass 对象的相加运算,输出 "name:Anna;age:65"
结果为:
name:Anna;age:42
name:Anna;age:42
name:Anna;age:42
False
name:Anna;age:65
Python中文网,大量
,欢迎学习!
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在 Python 中创建一个固定长度的列表09/13
- ♥ Python变量及其使用01/10
- ♥ 如何在python中计算乘法10/03
- ♥ python一句代码合并Excel表02/04
- ♥ python使用requests语句报错的原因是什么09/15
- ♥ 如何在 python 中使用注释?12/11
内容反馈