知行编程网知行编程网  2022-12-14 08:00 知行编程网 隐藏边栏  1 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于什么叫Python运算符重载的相关知识,包括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中文网,大量
,欢迎学习!

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享