Python中的__add__
方法
在本教程中,我们将讨论运算符重载及其优势,以及如何重载”+”运算符。
在讨论__add__
方法之前,让我们了解什么是运算符重载。
运算符重载使我们能够创建对现有运算符的定义,以便我们也可以将其用于用户定义的数据类型。
考虑以下示例:
i)10+2
在第一个示例中,”+”运算符用于相加两个整数。
ii)’JavaTpoint’ + ‘Tutorials’
在第二个示例中,”+”运算符用于连接两个字符串。
iii)list1+list2
在第三个示例中,”+”运算符用于合并两个列表的元素。
这使得很明显,根据数据类型,”+”运算符在不同的情况下具有不同的功能。
运算符重载的优势
- 相同的运算符可以用于不同的用户定义对象。
- 提供了对用户定义类型的内置数据类型的语法支持。
- 这个概念在理解科学计算中起着重要作用。
- 程序看起来简洁易懂。
现在是深入研究运算符”+”
可以进行重载的应用领域的时候了。
我们将使用的函数是__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__
,它是一个类构造函数,必须使用它来初始化类对象的变量。接下来,我们可以看到这里的关键字’self’,它引用的是对象本身。
下一个方法, decValue 用于传递实数和虚数的值。
接下来,我们将添加两个复数,其中第一个数的实部将与第二个数的实部相加,第一个数的虚部将与第二个数的虚部相加。
最后,display方法将以提供的格式显示所需的输出。
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__
,它是一个类构造函数,使用它是很重要的,因为它初始化了类对象的变量。接下来,我们可以看到这里使用了关键字’self’,它指的是对象本身。
接下来,我们将为学生添加成绩,为此我们使用了for循环将成绩附加到列表中。
最后,display方法将按照提供的格式显示所需的输出。
因此,在本文中,我们学习了如何在Python程序中使用 __add__
。