У меня есть класс, который действует как элемент в дереве:
class CItem( list ):
pass
У меня есть два дерева, каждое с CItem в качестве корня, каждый элемент дерева имеет несколько элементов dict (например, 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
Теперь я могу сравнить два дерева, используя '==' или '! ='. Это «питонический» способ или такое сравнение можно сделать проще?