Descriptors
Objects that control attribute access on another class via __get__, __set__ and __delete__ — the machinery behind properties and methods.
Advanced
class Positive:
def __set_name__(self, owner, name): self.name = "_" + name
def __get__(self, obj, objtype=None): return getattr(obj, self.name)
def __set__(self, obj, value):
if value <= 0: raise ValueError(f"{self.name[1:]} must be > 0")
setattr(obj, self.name, value)
class Capacitor:
farads = Positive()
Spotted a mistake or want to add detail? Suggest an improvement — Content Contributors' edits are reviewed by editors before they go live.
Discussion (0)
Sign in or join free to ask questions and discuss this topic.