猿问

如何让我的 IDE 识别动态添加的功能?

我目前正在用python开发一个动态软件系统。它包括在许多点上使用依赖注入,这是通过动态类属性实现的。我的目标是动态地将一个函数添加到一个类(使用setattr)中,这样可以很好地工作。我唯一的问题是IDE(在我的情况下是PyCharm)不知道这些功能并将其标记为“未解决的参考”。尽管脚本运行没有错误,但它看起来不是很好,我希望 IDE 支持其他不了解这些功能的程序员。


这是我的意思的一个例子:


class A:

    def __init__(self, func_obj):

        setattr(self, 'custom_function', func_obj)


a = A(print) # Unresolved attribute reference 'custom_function' for class 'A' ...

a.custom_function('Hello World!')

正如预期的那样,此示例打印“Hello World!”。但我觉得很难看,IDE 在最后一行显示警告,我在其中调用了“custom_function”。如果您尝试使用鸭子类型来探索脚本,也没有自动完成功能。


那么让我来回答我的问题:有什么方法可以告诉IDE这个类中有一些动态添加的函数吗?也许有一些方法可以使用元类或类似的东西......但我在谷歌上没有找到任何东西,我不知道在哪里可以尝试。


我希望你能帮助我:)


隔江千里
浏览 145回答 1
1回答

HUH函数

我有一个类似的请求并直接询问 PyCharm 错误跟踪器:PY-28326。我认为他们的回答也适用于您的问题:PyCharm 目前不支持动态添加到类的方法。
随时随地看视频慕课网APP

相关分类

Python
我要回答