def __setitem__(self, key, value): if key is None: value = sticky_attribute_assignment(trackable=self, value=value, name=self.__class__._SINGLETON) else: value = sticky_attribute_assignment(trackable=self, value=value, name=key) super().__setitem__(key, value)
def __setattr__(self, name, value): """Support self.foo = trackable syntax.""" if getattr(self, "_self_setattr_tracking", True): value = data_structures.sticky_attribute_assignment(trackable=self, value=value, name=name) super(AutoTrackable, self).__setattr__(name, value)
def __setattr__(self, name, value): """Support self.foo = trackable syntax.""" try: if getattr(self, name) is value: # Short circuit for `self.$x = self.$x`. return except AttributeError: pass if getattr(self, "_self_setattr_tracking", True): value = data_structures.sticky_attribute_assignment( trackable=self, value=value, name=name) super(AutoTrackable, self).__setattr__(name, value)
def __setattr__(self, name, value): """Support self.foo = trackable syntax. Redefined from `tensorflow/python/training/tracking/tracking.py` to avoid calling `getattr`, which causes an infinite loop. Args: name: str, name of the attribute to be set. value: value to be set. """ if vars(self).get(name, _NOT_FOUND) is value: return if vars(self).get('_self_setattr_tracking', True): value = data_structures.sticky_attribute_assignment(trackable=self, value=value, name=name) object.__setattr__(self, name, value)
def __setitem__(self, key, value): value = sticky_attribute_assignment(trackable=self, value=value, name=key) super().__setitem__(key, value)
def __setattr__(self, name, value): """Support self.foo = trackable syntax.""" if getattr(self, "_self_setattr_tracking", True): value = data_structures.sticky_attribute_assignment( trackable=self, value=value, name=name) super(AutoTrackable, self).__setattr__(name, value)