Shi*_*iva 15 python python-2.7 python-3.x
我是Python的新手.我正在开发一个小项目.我需要从病房开始遵循编码标准.如何以import正确的方式使用语句.现在我正在研究Python 2.7.如果我搬到3.x是否与绝对进口有冲突?绝对和相对进口有什么区别?
Two*_*ist 26
这里absolute和之间的区别relative非常类似于我们讨论绝对和相对文件路径甚至URL的方式.
绝对{进口,路径,URL}告诉你究竟如何让你以后的事情,通常通过指定每一个部分:
import os, sys
from datetime import datetime
from my_package.module import some_function
Run Code Online (Sandbox Code Playgroud)
相对{进口,路径,网址}是他们说什么,他们是:他们是相对他们的当前位置.也就是说,如果目录结构发生变化或文件移动,这些可能会中断(因为它们不再意味着相同的事情).
from .module_in_same_dir import some_function
from ..module_in_parent_dir import other_function
Run Code Online (Sandbox Code Playgroud)
因此,对于将要共享的代码,首选绝对导入.
我在评论中被要求提供一个如何from __future__ import absolute_import与此联系以及如何使用它的示例.在试图制定这个例子时,我意识到我也无法解释它的行为,所以我问了一个新问题.这个答案给出了一个代码示例,显示了一个正确工作的实现from __future__ import absolute_import,它实际上解决了歧义.
接受的答案更详细地说明了为什么它的工作方式,包括讨论Python 2.5更改日志的令人困惑的措辞.从本质上讲,该指令的范围(以及扩展Python中绝对和相对导入的区别)非常非常狭窄.如果您发现自己需要这些区别来使代码正常工作,那么如果可能的话,最好重命名本地模块.
| 归档时间: |
|
| 查看次数: |
18553 次 |
| 最近记录: |