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

Python包中如何导出驼峰命名类,实现无需前缀直接调用?

问题1:实现直接调用TestClass()的方法

你当前报错的原因是导入的testclass是独立模块文件,TestClass属于该模块的内部成员,没有被直接导入到当前代码的命名空间中,有两种常用解决方案:

  • 方案1:修改导入语句,直接从模块中导入目标类
    将测试代码的导入逻辑改为:
    from mypackage.testclass import TestClass
    a = TestClass()
    
    即可直接调用类完成实例化。
  • 方案2:通过包的__init__.py暴露内部成员(更符合通用包的开发规范)
    在你的mypackage根目录下新建__init__.py文件,写入内容:
    from .testclass import TestClass
    
    后续用户使用包时,直接执行下面的语句就可以调用类:
    from mypackage import TestClass
    a = TestClass()
    
问题2:dist-info目录的来源与生成方式
  • *.dist-info是Python包的标准元数据目录,符合PEP 427规范,存储了包的名称、版本号、依赖列表、许可证、作者信息、安装文件清单、入口点等所有元数据。你看到的标准库、第三方包调用时不需要加文件名前缀,本质是这些包的开发者在包的__init__.py中提前暴露了需要对外提供的类、函数等成员,和dist-info目录没有直接关联。
  • dist-info目录不需要手动编写,你执行python -m build命令构建包时,构建工具会自动从你的setup.py/setup.cfg/pyproject.toml配置文件中读取所有元信息,自动生成对应的dist-info目录,pip安装包时会自动将该目录放置到site-packages路径下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:54:00