Python中__eq__注意点

eq注意点

代码块:

class A:
    def __eq__(self, other):
        print(self)
        print(other)
        # if self.__dict__ == other.__dict__:
        if self == other:   # 此处相当于一直在反复的执行 a == b
            return True
a = A()
b = A()
# print(a)
# print(b)
print(a == b)

执行结果:

RecursionError: maximum recursion depth exceeded while getting the str of an object

报错问题原因:
eq判断语句中的 self == other 其实就是 a == b,所以在通过self == other语句在反复执行 __eq__函数

发布了1 篇原创文章 · 获赞 0 · 访问量 9
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览