您可以继承list 以在更改列表时打印。
这是一个例子:
class EventList(list):
def __setitem__(self, key, value):
super(EventList, self).__setitem__(key, value)
print("The list has been changed!")
def __delitem__(self, value):
super(EventList, self).__delitem__(value)
print("The list has been changed!")
def __add__(self, value):
super(EventList, self).__add__(value)
print("The list has been changed!")
def __iadd__(self, value):
super(EventList, self).__iadd__(value)
print("The list has been changed!")
def append(self, value):
super(EventList, self).append(value)
print("The list has been changed!")
def remove(self, value):
super(EventList, self).remove(value)
l = EventList(["apples","bananas"])
l.append('test')
打印:
The list has been changed!
或
只比较列表:
old_list = ["apples","bananas"]
new_list = ["apples","bananas"]
newer_list = ["apples","bananas", "oranges"]
old_list == new_list #true
old_list == newer_list #false
这将在没有子类的情况下工作,因为== 比较列表是否在相同的索引中具有相同的元素,而不是如果它们在 id 或 hash 上完全相同(在 lamen 中)。只需将旧的保存在变量中,然后当您要检查时就使用它。 (注意:这并没有提供自动调用 print 的方法。它只是另一种方法)