python - 在 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”函数中的变量名匹配?如果是,那是什么原因。
解决方案
名称无关紧要,只是为了使其更具可读性的约定,这应该也可以:
def __add__(self, other):
a1 = self.m1 + self.m2
m2 = other.m2 + other.m2
s3 = Student(a1,m2)
return s3
请注意您必须修改m1
两次(但不要在self
and中修改它们other
)
编辑:代码中似乎有一些错误,m2
出现了3次,m1
只出现了一次
推荐阅读
- openshift - web 控制台中未立即显示 openshift 模板更新
- c++ - Automake 复用常用文件
- php - 无法读取 CURL 保存的 cookie 文件
- android - 为什么我需要在 Kotlin 中的 = 之前添加空格?
- python - pyvisa 无法使用 GPIB-USB-HS 接口连接到 GPIB 仪器
- crystal-reports - 如何在 Crystal Reports 中将“07/03/2018”格式化为“2018 年 3 月 7 日”
- php - 如果数组索引的第一个为空,则图像不会上传
- oracle - Oracle order by in select 取决于参数
- python - 循环数据框列以将县转换为坐标
- django - Django 绝对 __in 查询