Compare commits

...

2 Commits

Author SHA1 Message Date
SantaSpeen 0b9f8b6feb [!] fix2 __getattr__ 2025-03-23 03:45:30 +03:00
SantaSpeen 3581e6ae44 [!] fix __setattr__ 2025-03-23 03:00:10 +03:00
+6 -4
View File
@@ -19,12 +19,17 @@ class NestedAccessor:
self.key_chain = key_chain
def __getattr__(self, item):
return NestedAccessor(self.parent, self.key_chain + [item]) # Продолжаем цепочку
if item.startswith("__"): # Проверяем системные атрибуты
raise AttributeError(f"'{item}' is not accessible")
return NestedAccessor(self.parent, self.key_chain + [item])
def __call__(self, **kwargs):
key = ".".join(self.key_chain)
return self.parent.get_phrase(key, **kwargs)
def __add__(self, other):
return self() + other
def __str__(self):
return self()
@@ -97,9 +102,6 @@ class I18N:
key = item.replace("_", ".") # заменяем _ на . для удобства
return NestedAccessor(self, [key]) # Начинаем цепочку
def __setattr__(self, key, value):
raise AttributeError("Can't set attribute")
def __call__(self, key: str, **kwargs):
return self.get_phrase(key, **kwargs)