首页 > 解决方案 > 在 python 中使用运算符重载来理解变量时需要帮助

问题描述

在理解以下代码中的变量时需要帮助。

class Student:
def __init__(self,m1,m2):
    self.m1 = m1
    self.m2 = m2
def __add__(self, other):
    m1 = self.m1 + self.m2 <---- doubt
    m2 = other.m2 + other.m2
    s3 = Student(m1,m2)
    return s3


s1 = Student(50,60)
s2 = Student(70,80)

s3 = s1 + s2
print (s3.m1)

所以我在这里得到了所需的 110 输出。但我的问题是为什么 add 函数中的变量应该只声明为 m1 而不是任何其他变量。它是否必须与“init”函数中的变量名匹配?如果是,那是什么原因。

标签: python

解决方案


名称无关紧要,只是为了使其更具可读性的约定,这应该也可以:

def __add__(self, other):
    a1 = self.m1 + self.m2 
    m2 = other.m2 + other.m2
    s3 = Student(a1,m2)
    return s3

请注意您必须修改m1两次(但不要在selfand中修改它们other

编辑:代码中似乎有一些错误,m2出现了3次,m1只出现了一次


推荐阅读