在本教程中,我们将讨论运算符重载、它的优点以及如何重载“+”运算符。
在讨论__add__
方法之前,让我们了解什么是运算符重载。
运算符重载使我们能够创建现有运算符的定义,这样我们也可以将它们用于用户定义的数据类型。
考虑下面的例子-
i) 10+2
在第一个例子中,'+'运算符用于将两个整数相加。
ii)【JavaPoint】+【教程】
在第二个例子中,'+'运算符用于连接两个字符串。
iii)列表 1+列表 2
在第三个例子中,'+'运算符用于组合两个列表的元素。
这清楚地表明,基于数据类型,'+'运算符在不同情况下的工作方式不同。
运算符重载的优势
- 同一运算符可用于不同的用户定义对象。
- 在内置数据类型的情况下可以观察到的语法支持也为用户定义的类型提供。
- 这个概念对于理解科学计算有着重要的作用。
- 这个程序看起来清晰易懂。
现在是深入应用世界的时候了,我们将看到运算符“+”是如何被重载的。
我们将使用的函数是 add。
在第一个程序中,我们将讨论如何将两个复数相加。
示例-
class Complex:
def __init__(self):
self.real=0
self.imag=0
def decValue(self,real,imag):
self.real=real
self.imag=imag
def __add__(self,C):
temp=Complex()
temp.real=self.real+C.real
temp.imag=self.imag+C.imag
return temp
def display(self):
print("(",self.real, "+", self.imag,"i)")
C1=Complex()
C1.decValue(10,12)
C2=Complex()
C2.decValue(8,6)
C3=Complex()
C3=C1+C2
print("The result of the addition of two complex numbers is: ")
C3.display()
输出:
The result of the addition of two complex numbers is:
( 18 + 18 i)
解释-
在上面的程序中,我们创建了一个名为“Complex”的类,并定义了一些类方法。第一种方法使用 init ,这是一个类构造器,使用它很重要,因为它初始化了类对象的变量。接下来,我们可以在这里看到关键字“自我”,它指的是对象本身。
下一个方法 decValue 用于传递实数和 imag 的值。
接下来,我们将相加两个复数,其中第一个数的实数部分将被添加到第二个数的实数部分,第一个数的虚数部分将被添加到第二个数的虚数部分。
最后,显示方法将以提供的格式显示所需的输出。
class Student:
def __init__(self,name,marks):
self.name=name
self.marks=marks
def display(self):
print(self.name,self.marks)
def __add__(self,S):
temp=Student(S.name,[])
for i in range(len(self.marks)):
temp.marks.append(self.marks[i]+S.marks[i])
return temp
S1=Student("Aarav",[90,91,88])
S2=Student("Aarav",[88,86,87])
S1.display()
S2.display()
S3=Student("",[])
S3=S1+S2
S3.display()
输出:
Aarav [90, 91, 88]
Aarav [88, 86, 87]
Aarav [178, 177, 175]
解释-
在上面的程序中,我们创建了一个名为“Student”的类,并定义了一些类方法。第一个方法使用 init 这是一个类构造器,使用它很重要,因为它初始化类对象的变量。接下来,我们可以在这里看到关键字“自我”,它指的是对象本身。
接下来,我们将添加学生的标记,为此,我们使用 for
循环在列表中添加标记。
最后,显示方法将以提供的格式显示所需的输出。
因此,在本文中,我们学习了如何在 Python 程序中使用 add 。