
此处
absolute和之间的区别与
relative我们谈论绝对和相对文件路径甚至URL的方式非常相似。
绝对的{import,path,URL}通常会通过指定每个部分来 确切地 告诉您如何获得所需的东西:
import os, sysfrom datetime import datetimefrom my_package.module import some_function
相对的{imports,paths,URLs}就是它们所说的:它们是 相
对于当前位置的。也就是说,如果目录结构更改或文件移动,它们可能会中断(因为它们不再意味着同一件事)。
from .module_in_same_dir import some_functionfrom ..module_in_parent_dir import other_function
因此,绝对导入是首选的共享代码。
有人在评论中要求我提供一个示例,说明
from __future__ importabsolute_import如何与之关联以及如何使用它。在尝试阐述此示例时,我意识到我也无法完全解释其行为,因此我提出了一个新问题。此答案给出了一个代码示例,该示例显示正确工作的实现
from__future__ import absolute_import,在其中实际上解决了歧义。
公认的答案将更详细地说明其工作原理,包括讨论Python
2.5
changelog的措辞混乱。从本质上讲,此指令的范围(以及通过扩展在Python中绝对导入和相对导入之间的区别)非常狭窄。如果发现自己需要这些区别来使代码正常工作,则最好重命名本地模块。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)