Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0b9f8b6feb | |||
| 3581e6ae44 |
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user