perf(properties): add __slots__ to Property

This commit is contained in:
rus07tam 2025-10-26 18:40:59 +00:00
parent d7b965d26d
commit 52d1505839

View file

@ -5,7 +5,12 @@ from snakia.types import empty
class Property[T]:
"""
A property that can be set, get, and deleted."""
A property that can be set, get, and deleted.
"""
__slots__ = "__fget", "__fset", "__fdel", "__name"
__name: str
def __init__(
self,
@ -17,6 +22,9 @@ class Property[T]:
self.__fset = fset
self.__fdel = fdel
def __set_name__(self, owner: type, name: str) -> None:
self.__name = name
def __get__(self, instance: Any, owner: type | None = None, /) -> T:
return self.__fget(instance)
@ -40,3 +48,7 @@ class Property[T]:
"""Descriptor deleter."""
self.__fdel = fdel
return self
@property
def name(self) -> str:
return self.__name