首页 > 解决方案 > Jupyter notebook / Ipython 使用 __getattr__ 自动完成

问题描述

我有一个类,我为它定义__getattr__了从 YAML 文件中动态提取属性数据。它看起来像这样:

class Example:

    def __init__(self, yaml_path):

        self.rand = 0
        with open(yaml_path) as file:
            self._data = yaml.load(file, Loader=yaml.FullLoader)

    def __getattr__(self, name):
        return self._data[name]

该类按预期工作,但 Jupyter 中的自动完成功能现在因此类的实例而丢失。不仅自动完成功能不适用于动态属性,而且构造函数中定义的标准属性也不可用。

如何在保持自动完成的同时获得相同的结果?

标签: pythonjupyter-notebookattributesipythongetattr

解决方案


推荐阅读