鱼C论坛

 找回密码
 立即注册
查看: 708|回复: 1

零基础42讲-魔法方法中的递归

[复制链接]
发表于 2019-3-23 09:09:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
刚到第42讲,比较困惑的是其中出现的递归问题。
class Try_int(int):
        def __add__(self, other):
                return self + other

class New_int(int):
        def __add__(self, other):
                return int(self) + int(other)

为什么第一种会导致无穷递归,而第二种没有。有大佬能具体讲解下么。 另外我用help(int)查询了里面的 __sub__方法:
  __add__(self, value, /)
|      Return self+value.

为什么和第一种一样。感谢大佬,小弟初学,问题比较多。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-3-25 18:28:51 | 显示全部楼层
第一种因为self+other   self是该类实例对象,+操作会继续触发魔法方法,如此反复
第二种int后就是int的实例相加,而不是该类的相加,不会再触发
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-14 17:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表