首先是代码:
class myClass(object):
def __cmp__(self, other):
return cmp(type(self), type(other)) or cmp(self.__something, other.__something)
这是否与python中的其他类型产生相同的顺序?有没有正确的习语 对此?
在谷歌上看一下我在python docs找到了一些相关的信息。引用:
实施说明:对象 除数字外的其他类型 按类型名称排序;对象 不支持的相同类型 适当的比较是由他们的 地址。
这表明如果我想遵循这种行为,我应该使用
class myClass(object):
def __cmp__(self, other):
return (cmp(self.__class__.__name__, other.__class__.__name) or
cmp(self.__something, other.__something))
特别不幸的是,我可能有一段非常困难的时间来保持dict
s的传递性,这是我希望实施的一个特例。
我甚至需要检查我的论点类型吗? python甚至让我看到了吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
你到底想要做什么?为什么要按类/类型对不同类的实例进行排序或比较?
如果您没有真正发布问题,很难提出解决方案。
您需要为自定义类定义自己的比较方法,并且在很大程度上取决于您确保执行的任何比较都有意义。
请解释你想要达到的目标。这可能不是Pythonic的方式。