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

导入Python包test后,子模块p1/p2/p3是否被导入及访问方法

Python包导入子模块的问题解答

1. 直接import test as t不会自动导入子模块

当你执行import test as t时,Python只会加载包根目录下的__init__.py文件,不会自动导入p1.py、p2.py、p3.py这些子模块。此时t这个命名空间里仅包含__init__.py中定义的内容,无法直接访问p1、p2、p3。

2. 两种访问子模块的方式

  • 方式一:单独导入子模块
    在import test as t之后,你可以按需单独导入子模块:

    # 方式A:将子模块关联到包命名空间
    from test import p1, p2, p3
    # 之后可通过t.p1 或直接p1访问
    t.p1.some_func()
    p1.some_func()
    
    # 方式B:直接导入子模块并重命名
    import test.p1 as p1
    p1.some_func()
    
  • 方式二:修改包的__init__.py文件
    在test包的__init__.py中添加以下代码,把子模块提前导入到包的命名空间:

    from . import p1, p2, p3
    

    这样当你执行import test as t时,p1、p2、p3会被自动加载,直接通过t.p1、t.p2、t.p3就能访问子模块内的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:03:08