2023-07-11 14:02:05 +08:00
|
|
|
class CallBackDescriptor:
|
2023-07-11 14:24:33 +08:00
|
|
|
def __init__(self, name):
|
2023-07-11 14:02:05 +08:00
|
|
|
self.callback_name = name
|
|
|
|
|
|
|
|
def __set__(self, instance, value):
|
2023-07-11 14:24:33 +08:00
|
|
|
assert getattr(instance, self.callback_name) is None, f"Attribute '{self.callback_name}' has been set."
|
|
|
|
instance.__dict__[self.callback_name] = value
|
2023-07-11 14:02:05 +08:00
|
|
|
|
2023-07-11 14:24:33 +08:00
|
|
|
def __get__(self, instance, owner):
|
|
|
|
if instance is None:
|
|
|
|
return self
|
|
|
|
else:
|
|
|
|
return instance.__dict__[self.callback_name]
|