Python教程-Python中的`_add_`方法

在本教程中,我们将讨论运算符重载、它的优点以及如何重载“+”运算符。
在讨论__add__
方法之前,让我们先了解什么是运算符重载。
运算符重载使我们能够创建现有运算符的定义,以便我们可以将它们用于用户定义的数据类型。
考虑以下示例 -
i) 10+2
在第一个示例中,使用“+”运算符将两个整数相加。
ii) 'Javatiku' + '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 用于传递实数和虚数的值。
接下来,我们将添加两个复数,其中第一个数的实部将与第二个数的实部相加,第一个数的虚部将与第二个数的虚部相加。
最后,显示方法将以所提供的格式显示所需的输出。
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循环将成绩附加到列表中。
最后,显示方法将以所提供的格式显示所需的输出。
因此,在本文中,我们学习了如何在我们的Python程序中使用add。