您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

与目录同名的Python导入类

与目录同名的Python导入类

使用单个导入时遇到的实际问题是由于软件包的优先级高于模块:

请注意,使用时from package import item,项目可以是程序包的子模块(或子程序包),也可以是程序包中定义的其他名称,例如函数,类或变量。该import 语句首先测试项目是否在包装中定义;如果不是,则假定它是一个模块并尝试加载它。如果找不到它,ImportError则会引发异常。

无论如何,我 强烈 建议重命名文件或目录,因为您 导入多个具有给定名称的模块。发生问题是因为每个模块/包对象都存储到中sys.modules,这很简单dict,因此不能包含多个相等的键。

特别是,假设foo.pyfoo目录位于不同的目录中(如果不是,则仍然无法导入foo.py),请执行以下操作:

from foo import gaz

它将加载foo.py并将模块放入sys.modules,然后尝试执行以下操作:

from foo.bar import wakaka

由于导入尝试使用模块foo.py而不是包,因此将失败。

相反,如果您第一次导入foo.bar,则会发生相反的情况;导入将使用包而不是模块。

python 2022/1/1 18:50:32 有371人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶