下面是小白学习过程对__add__的认识
一、为什么要认识?
知其然必知所以然
二、认识过程
1.初识整数相加
代码如下(示例):
v1 = int(1) # 创建一个整数 将值存储到变量v1中
v2 = int(2) # # 创建一个整数 将值存储到变量v2中
print(v1 + v2) # 两个数值相加 得到结果3
2.学了面向对象之后对整数相加的认识
代码如下(示例):
v1 = int(1) # 实例化对象 v1
v2 = int(2) # 实例化对象 v2
print(v1 + v2) # 两个对象相加 得到结果3
那我们看在自定义类中,两个对象相加的结果是什么?
class Foo: pass v1 = Foo() v2 = Foo() print(v1 + v2)
报错:TypeError: unsupported operand type(s) for +: 'Foo' and 'Foo' 不支持该操作 怎么回事呢
对象+值,内部会执行__add__方法 会将+后面的值v2当做参数传递过去。v1传给self,v2传给other
注意:必须要有返回值
结果