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

如何导入含连字符子目录下的Python类(脚本与目录均含连字符)

问题定位
  • 第一个错误:importlib.import_module() 方法仅支持导入模块对象,不支持直接导入模块内部的类/函数。你把类名check也写到了导入路径里,解释器会把check识别为new_script模块下的子模块,自然会抛出new_script不是包的错误。
  • 第二个错误:就算模块导入正确,你直接调用check()也无法找到类,因为导入的模块对象默认不会把内部属性挂载到当前命名空间,需要显式从模块对象中提取check类。
  • 额外注意:你定义的print_me方法没有加self参数,作为实例方法调用时会触发参数不匹配错误,建议补充self或者标记为静态方法。
正确实现代码
import importlib

# 仅导入到new_script模块层级
mod = importlib.import_module("level-1.level-2.new_script")
# 从模块中提取check类
check = mod.check

my_instance = check()
# 注意原方法要加self参数才能正常调用,修改后的new_script.py代码参考:
# class check:
#     def print_me(self):
#         print("inside the class")
my_instance.print_me()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:36:04