栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

模块__file__属性是绝对的还是相对的?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

模块__file__属性是绝对的还是相对的?

从文档中:

__file__
是从中加载模块的文件的路径名(如果它是从文件加载的)。__file__对于静态链接到解释器的C模块,该属性不存在。对于从共享库动态加载的扩展模块,它是共享库文件的路径名。

从@kindall链接的邮件列表线程中,对该问题进行评论:

我没有尝试对这个特定示例进行复制,但是原因是我们不想在每次导入时都调用getpwd(),也不想拥有某种进程内变量来缓存当前目录。(getpwd()相对较慢,有时可能会完全失败,并且尝试对其进行缓存有一定的错误风险。)

相反,我们要做的是

site.py
中的代码,该代码遍历
sys.path
的元素并将其转换为绝对路径。但是,此代码在将’‘插入
sys.path
的开头之前运行,因此sys.path的初始值为。

对于其余的内容,请考虑

sys.path
不包括’‘。

因此,如果您不在

sys.path
包含模块的那一部分内,那么您将获得一条绝对路径。如果您位于sys.path包含模块的那一部分内,则会得到一个相对路径。

如果您在当前目录中加载模块,而当前目录不在中

sys.path
,则将获得绝对路径。

如果将模块加载到当前目录中,并且当前目录位于中

sys.path
,则将获得相对路径。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637060.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号