请教一个运算符重载的问题

2017-08-09 21:53:25 +08:00
 saximi
Class C:
data='spam'
def __gt__(self,other):
return self.data > other


X=C()
print(X>'ham')

上面这段代码对运算符“>”进行了重载。我的问题是:当程序执行到“ X>'ham'”的时候就会调用重载后的__gt__方法,
但是这个方法的 return 语句也用到了“>”运算,这为何不会导致再次调用__gt__方法,从而没完没了递归了呢?
1513 次点击
所在节点    Python
2 条回复
Morriaty
2017-08-09 22:34:13 +08:00
因为 type(self.data) == string
saximi
2017-08-10 00:05:07 +08:00
感谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/381787

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX