4. Descriptor Protocols
These examples demonstrate how Python's descriptor protocol (__get__, __set__, and __set_name__) allows fine-grained control over attribute access and modification.
1. Basic Descriptor Example
Copy
class Descriptor:
def __get__(self, instance, owner):
print("Getting value")
return instance._value
def __set__(self, instance, value):
print("Setting value")
instance._value = value
class MyClass:
attribute = Descriptor()
obj = MyClass()
obj.attribute = 42 # Setting value
print(obj.attribute) # Getting value, Output: 422. Read-Only Descriptor
Copy
3. Descriptor with Validation
Copy
4. Non-Data Descriptor
Copy
5. Descriptor in Class Variables
Copy
6. Combining __get__ and __set__
Copy
7. Tracking Access with a Descriptor
Copy
8. Descriptor to Control Multiple Attributes
Copy
9. Using a Descriptor for Logging
Copy
10. Descriptor with Property-Like Behavior
Copy
Last updated