gpt4 book ai didi

比较复合类的pythonic方法?

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:22 25 4
gpt4 key购买 nike

我有一个类充当树中的一个项目:

class CItem( list ):
pass

我有两棵树,每棵树都以 CItem 为根,每个树项都有一些字典成员(如 item._test = 1)。现在我需要比较这些树。我可以建议为 CItem 重载比较运算符:

class CItem( list ):
def __eq__( self, other ):
# first compare items as lists
if not list.__eq__( self, other ): return False
# now compare dict members
if self.__dict__ != other.__dict__: return False
# seems equal
return True

现在我可以使用“==”或“!=”比较两棵树。这是一种“pythonic”方式还是可以轻松完成这种比较?

最佳答案

我的感觉是这样的

class CItem(list):
def __eq__(self, other):
return list.__eq__(self, other) and self.__dict__ == other.__dict__

但它基本上与您的代码相同,只是用更短的符号表示。我想不出还有什么更实质性的变化可以随手做出。

关于比较复合类的pythonic方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/722741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com