gpt4 book ai didi

python - 如何检查对象的字段是否已在 Python 中更改?

转载 作者:行者123 更新时间:2023-12-05 02:18:58 26 4
gpt4 key购买 nike

我有这样的类(class):

class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y

我通过以下方式创建此类的实例:

p1 = Point(5, 10)

我想知道是否更改了此类的任何字段。我想可能存在某种哈希函数,我可以比较其结果。

例如,在 bash 中我可以写 md5sum <<<"string" , md5sum <<<"string"为了得到x , y分别。然后我可以比较xy找出它们是否不同。

是否有适用于 Python 对象的类似方法?

最佳答案

您可以简单地通过覆盖 __setattr__ 类方法来实现。

In[6]: class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
self._changed = False

def __setattr__(self, key, value):
if key != '_changed':
self._changed = True
super(Point, self).__setattr__(key, value)

def is_changed(self):
return self._changed

In[7]: p = Point(2,3)
In[8]: p.is_changed()
Out[8]: False
In[9]: p.x = 23
In[10]: p.is_changed()
Out[10]: True

关于python - 如何检查对象的字段是否已在 Python 中更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43898360/

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