【发布时间】:2019-01-16 13:49:37
【问题描述】:
需要帮助理解以下代码中的变量。
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”函数中的变量名匹配?如果是,那是什么原因。
【问题讨论】:
-
我不确定我是否理解您的问题,您的意思是这是否可行:
anything = self.m1 + self.m2等? -
是的!!为什么只有 m1 = self.m1 + self.m2 有效,但 a1 = self.m1 + self.m2 给我一个错误?
-
@BhargavMg 你确定吗?请发送问题代码和您遇到的错误。
-
"
m1 = self.m1 + self.m2有效,但a1 = self.m1 + self.m2给我一个错误"只有在您忘记将m1的所有引用更改为a1时才有可能,例如Student(m1,m2)到Student(a1,m2). -
1) 将该代码放入问题中,而不是评论。 2) 为什么你认为
s3有一个a1,而你没有将它保存在任何地方?
标签: python