用编程搞垮道盟 发表于 2018-10-10 17:08:33

就是“零基础入门学习python”那里面,第42讲的课后作业的答案

42讲课后作业动动手的第二题
def __add__(self, other):
      return self.total + other.total
就这个,__add__()不是等于+那么不该是陷入无限递归吗???为什么这个就不会陷入无限递归呀?

claws0n 发表于 2018-10-10 17:18:30

只是把第一个对象的值跟另一个对象的值相加而已呀,有没有递归调用,立刻就 return 了

用编程搞垮道盟 发表于 2018-10-10 17:25:21

claws0n 发表于 2018-10-10 17:18
只是把第一个对象的值跟另一个对象的值相加而已呀,有没有递归调用,立刻就 return 了

可是输入+不就相当于调用add吗??

claws0n 发表于 2018-10-10 17:33:14

用编程搞垮道盟 发表于 2018-10-10 17:25
可是输入+不就相当于调用add吗??

类对象要重载,不然不能相加不是吗?

用编程搞垮道盟 发表于 2018-10-10 17:35:01

QQ图片20181010172956.png

用编程搞垮道盟 发表于 2018-10-10 17:36:42

claws0n 发表于 2018-10-10 17:33
类对象要重载,不然不能相加不是吗?

等下,这玩意儿怎么发截图???小甲鱼那个视频课上不是举了个例子说不行的吗??我不明白那个例子和这个之间的区别

claws0n 发表于 2018-10-10 17:38:51

用编程搞垮道盟 发表于 2018-10-10 17:36
等下,这玩意儿怎么发截图???小甲鱼那个视频课上不是举了个例子说不行的吗??我不明白那个例子和这个 ...

这样

用编程搞垮道盟 发表于 2018-10-10 17:42:05

claws0n 发表于 2018-10-10 17:38
这样

就是这个

claws0n 发表于 2018-10-10 17:49:43

用编程搞垮道盟 发表于 2018-10-10 17:42
就是这个

覆盖了不是吗?内部的是普通的加法
@塔利班

用编程搞垮道盟 发表于 2018-10-10 17:53:43

claws0n 发表于 2018-10-10 17:49
覆盖了不是吗?内部的是普通的加法
@塔利班

啊?视频里这个可是无限递归啊!!!!{:9_241:}

claws0n 发表于 2018-10-10 17:59:25

用编程搞垮道盟 发表于 2018-10-10 17:53
啊?视频里这个可是无限递归啊!!!!

python 我没看完~ {:10_254:} 呼叫会的人了,等一等吧~

塔利班 发表于 2018-10-10 18:18:37

add你这里是一个类的2个实例相加
self.total和other.total都不是实例对象,是类属性,属性该怎么加就怎么加,用不到这个魔法方法

用编程搞垮道盟 发表于 2018-10-11 09:22:56

塔利班 发表于 2018-10-10 18:18
add你这里是一个类的2个实例相加
self.total和other.total都不是实例对象,是类属性,属性该怎么加就怎么 ...

哦哦似乎明白了点儿什么谢谢诶
页: [1]
查看完整版本: 就是“零基础入门学习python”那里面,第42讲的课后作业的答案