From 52d1505839d4314d7236a2b3681330007c9b5fa7 Mon Sep 17 00:00:00 2001 From: rus07tam Date: Sun, 26 Oct 2025 18:40:59 +0000 Subject: [PATCH] perf(properties): add __slots__ to Property --- src/snakia/property/property.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/snakia/property/property.py b/src/snakia/property/property.py index 97e8b29..53b30bc 100644 --- a/src/snakia/property/property.py +++ b/src/snakia/property/property.py @@ -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