Я реализовал свой собственный __getattr__()
, чтобы свободно обрабатывать любые несуществующие атрибуты.
Мне просто удалось определить этот класс в блокноте Jupyter, чтобы поэкспериментировать с ним.
IPython создает _ipython_canary_method_should_not_exist_
из-за этой __getattr__
реализации - и Я бы хотел понять, что это такое и как "очистить" это возможно.
Существует этот вопрос , открытый по этому поводу, но я не понимаю, почему - если он проверяет разрешительную обработку в __getattr__
- он не проверяет, чтобы увидеть _repr_html_ реализован в примере ОП?
from types import SimpleNamespace
class Metabox(SimpleNamespace):
def __getattr__(self, name):
"""
Create a new namespace for any non-existing attributes.
"""
print("calling __getattr__")
self.__dict__[name] = Metabox()
return self.__dict__[name]