'What is ipython canary method should not exist?'

2024-05-15 13:54:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我实现了我自己的__getattr__()来松散地处理任何不存在的属性。在

我只是碰巧在一个Jupyter笔记本中定义了这个类以交互方式进行实验。在

IPython由于这个__getattr__实现而创建了_ipython_canary_method_should_not_exist_,我想知道这是什么,以及如何“清理它”是可能的。

关于它有this issue打开了,但我不清楚为什么——如果它检查__getattr__中的许可处理——它没有检查在OP的示例中是否实现了\u 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]

Tags: nameself属性定义ipython笔记本jupytermethod
1条回答
网友
1楼 · 发布于 2024-05-15 13:54:18

正如上面的注释中提到的taper;IPython有时需要检查对象以了解它们是否具有某些方法。在

处理像你这样的对象;它总是说“是”,当我们有疑问时,我们会探测这个名称;如果对象说“是,我明白了!”我们知道对象是谎言,并实现了__getattr__。在

相关问题 更多 >