在使用Python中的运算符重载来了解变量方面需要帮助

时间:2019-01-16 05:26:21

标签: 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”函数中的变量名匹配吗?如果是,原因是什么。

1 个答案:

答案 0 :(得分:-1)

名称无关紧要,只是为了使它更具可读性而已,这应该同样有效:

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

请注意,您必须两次修改m1(但请在selfother中保持不变)

编辑:代码中似乎存在一些错误,因为m2出现了3次,m1仅出现了一次