22 lines
556 B
Python
22 lines
556 B
Python
from .field import Field
|
|
|
|
class Attribute(Field):
|
|
def __init__(self, name, default=None):
|
|
self.attribute = name
|
|
self.value = default
|
|
self.default = default
|
|
|
|
def __get__(self, inst, cls):
|
|
if inst is None:
|
|
return self
|
|
|
|
assert self.name is not None
|
|
return self.value
|
|
|
|
def __set__(self, inst, value):
|
|
assert self.name is not None
|
|
self.value = value
|
|
|
|
self._changed_field(inst, self.name, value)
|
|
inst._set_attribute(self.name, self.attribute, value)
|