class DirtyClass: def __init__(self, role_id): self.db_key = role_id self.DirtyFlag = DirtyFlagProcess(self) self.DirtyFlag.add_dirty_notify_fun(client_dirty_receive_fun, *test_args, **test_kwargs) def update(self): self.dirty_dic = self.DirtyFlag.get_client_dirty_attr() def get_dirty(self): return self.db_key, self.dirty_dic def set_k1(self, v): self.k1 = v self.DirtyFlag.add_flag('k1') def get_k1(self): return self.k1 def set_k2(self, v): self.k2 = v self.DirtyFlag.add_flag('k2') def get_k2(self): return self.k2 def set_k3(self, v): self.k3 = v self.DirtyFlag.add_flag('k3') def get_k3(self): return self.k3 def reset_client_flags(self, reset_value): self.DirtyFlag.reset_client_flags(reset_value) def get_client_dirty_attr(self): dirty_dict = self.DirtyFlag.get_client_dirty_attr() return {client_key:dirty_dict} if dirty_dict else {}