| f | class ParDescr: | f | class ParDescr: |
| | | |
| n | def __init__(self, default): | n | def __init__(self, initial_value): |
| self.default = default | | self.initial_value = initial_value |
| self.name = None | | self.name = None |
| | | |
| def __set_name__(self, owner, name): | | def __set_name__(self, owner, name): |
| self.name = name | | self.name = name |
| | | |
| def __get__(self, instance, owner): | | def __get__(self, instance, owner): |
| if instance is None: | | if instance is None: |
| t | return self.default | t | return self.initial_value |
| return instance.__dict__.get(self.name, self.default) | | return instance.__dict__.get(self.name, self.initial_value) |
| | | |
| def __set__(self, instance, value): | | def __set__(self, instance, value): |
| instance.__dict__[self.name] = value | | instance.__dict__[self.name] = value |
| | | |
| def __delete__(self, instance): | | def __delete__(self, instance): |
| if self.name in instance.__dict__: | | if self.name in instance.__dict__: |
| del instance.__dict__[self.name] | | del instance.__dict__[self.name] |
| else: | | else: |
| raise KeyError(self.name) | | raise KeyError(self.name) |