python – 使用重载的比较运算符从int派生类访问原始int比较
发布时间:2020-05-23 12:50:12 所属栏目:Python 来源:互联网
导读:我有一个带有重载比较运算符的int派生类.在重载方法的主体中,我需要使用原始运算符.玩具示例: class Derived(int): ... def __eq__(self, other): ... return super(Derived, self).__eq__(other) 使用Python 3.3可
|
我有一个带有重载比较运算符的int派生类. 在重载方法的主体中,我需要使用原始运算符. 玩具示例:
使用Python 3.3可以正常工作,但是使用Python 2.7时会出现异常,因为AttributeError:’super’对象没有属性’__eq__’. 我可以考虑几个walkarrounds,我觉得不是很干净:
需要创建一个新的int对象,只是为了比较它
基于Python版本拆分控制流,我觉得非常混乱(因此明确地检查Python版本). 如何使用Python 2.7和3.3以优雅的方式访问原始整数比较? 最佳答案 我相信你应该在定义类之前在int中定义__eq__.例如:
这应该为超类赋予__eq__属性. EDITED 主要想法奏效了,但我注意到代码无效.所以:改进代码: (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
