You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PyCharm识别__init__.py中动态创建的对象?

解决PyCharm识别不了__init__.py动态生成对象的办法

下面几个方案不用改动你原有的动态实现逻辑,就能让PyCharm正常识别这些运行时生成的对象:

1. 添加类型存根文件(.pyi)

在example文件夹下新建__init__.pyi文件,里面只需要写供IDE识别的符号定义,不用包含实际运行逻辑:

class Example:
    pass

SubExample = Example

PyCharm会自动读取这个存根文件,就能识别到SubExample的存在及其类型。

2. 在原文件中添加仅给IDE识别的假声明

在动态赋值代码的上方,加一段运行时不会执行的假声明,让IDE能解析到目标符号:

class Example:
    pass

# 这段代码仅用于PyCharm识别,运行时不会执行
if False:
    SubExample = Example

globals()['SubExample'] = Example

这种方式不用额外创建文件,直接在原__init__.py里添加几行即可。

3. 利用__all__变量(适合对外导出场景)

如果这些动态生成的对象都是需要对外导出的成员,可以在__init__.py里定义__all__列表,把对象名添加进去:

class Example:
    pass

globals()['SubExample'] = Example

__all__ = ['SubExample', 'Example']

这样PyCharm会把这些符号视为模块的导出成员,至少不会再报“找不到对象”的错误,适合只需要识别存在性的场景。

内容的提问来源于stack exchange,提问作者Roelant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:52:08