You need to enable JavaScript to run this app. Python 3.x 跨文件导入自定义类创建类对象的实现
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.x 跨文件导入自定义类创建类对象的实现

跨文件导入类的问题排查与修正

现存代码的核心问题

  • 导入逻辑匹配错误:Python同项目下跨文件导入时,导入对象是文件名对应的模块,而非文件内定义的类名。现有main.py中import Person as P的写法,会让Python查找名为Person.py的模块文件,但实际项目中的模块文件是小写命名的person.py,运行时会直接抛出ModuleNotFoundError。
  • 类方法变量作用域错误:person.py中的welcome()方法直接引用了未定义的name变量,实例的姓名参数是存储在实例属性self.name上的,直接写name会触发NameError,无法正常取值打印。
  • 执行入口缺失:main.py中虽然定义了main()函数,但没有添加脚本运行入口判断,直接运行文件时函数不会被自动触发,无任何输出。

修正后的可运行代码

person.py(修正后)

class Person():
    def __init__(self, name):
        self.name = name
    def welcome(self):
        # 修正:引用实例绑定的name属性
        print("welcome", self.name)

main.py(修正后)

# 修正:导入对应文件名的person模块,匹配原代码的别名命名习惯
import person as P

def main():
    p1 = P.Person("Marshall")
    p2 = P.Person("Jhon")
    p1.welcome()
    p2.welcome()

# 修正:添加脚本执行入口,确保main函数被自动调用
if __name__ == "__main__":
    main()

运行效果

执行main.py后,控制台会输出:

welcome Marshall
welcome Jhon

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.14 19:45:06