Python dir()函数问题:导入models模块后无法获取user类怎么办?
问题解决:import models后无法看到user类
不需要降低Python版本,这是Python包导入的标准规范问题,和版本无关,以下是具体解决方法:
核心原因
Python将包含__init__.py文件的文件夹视为可导入的包,默认情况下import models只会导入包本身(即执行models/__init__.py的内容),不会自动加载包内的子模块(比如MMM.py),因此MMM.py中定义的user类不会出现在models的命名空间里,dir(models)自然无法显示它。
解决方法
方法一:通过__init__.py暴露类
在models文件夹中创建__init__.py文件(如果不存在的话),在文件中添加以下代码:
from .MMM import user
完成后,执行import models再调用dir(models),就能看到user类,直接通过models.user即可访问该类。
方法二:直接导入子模块或类
如果不想修改__init__.py,可以在conduct.ipynb中调整导入方式:
- 导入整个子模块:
此时通过import models.MMMmodels.MMM.user访问类,dir(models.MMM)会显示user。 - 直接导入类:
这样可以直接使用from models.MMM import useruser类,无需通过包层级访问。
内容的提问来源于stack exchange,提问作者정찬우
相关产品推荐
相关产品推荐

