Nei*_*_UK 6 python scipy python-import
以下导入语句的效果之间是否有任何差别,微妙或不那么微妙?我发现它们都在示例程序中使用,当然,它们似乎都可以工作.如果它们在功能上完全等同,那将违背Python的"只有一种方法来做事",所以我很困惑.我刚刚开始使用Python并试图保持良好的习惯.例如,对于scipy包中的插值模块......
from scipy import interpolate as spi
Run Code Online (Sandbox Code Playgroud)
要么
import scipy.interpolate as spi
Run Code Online (Sandbox Code Playgroud)
两者似乎都将插入模块作为spi放在当前命名空间中
Mar*_*ers 10
不,两个语句之间没有区别,两者都将完全相同的对象放在模块名称空间(globals()
)中,名称完全相同.
他们以略微不同的方式进行,但最终结果是一样的.
基本上,第一个做:
from scipy import interpolate
spi = interpolate
del interpolate
Run Code Online (Sandbox Code Playgroud)
而第二个归结为
import scipy.interpolate
spi = scipy.interpolate
del scipy
Run Code Online (Sandbox Code Playgroud)
最后你拥有的是spi
绑定到该interpolate
函数的名称.
就个人而言,我不会重命名这样的功能,我会保留它import scipy
并使用scipy.interpolate
,清楚地传达对象来自整个代码的位置,或者我会使用from scipy import interpolate
.
重命名对象可能会让您更容易为您键入内容,但是当您在数月缺席后重新访问此代码时,可能会让您或其他人更难以理解.
这确实是一个品味问题。
在这种特殊情况下,我会使用import scipy.interpolate as spi
, 来记住它interpolate
是 的子模块scipy
。如果我要从模块导入函数,我会使用from module import function
.
唯一的事情是,与您选择的约定保持一致。
归档时间: |
|
查看次数: |
194 次 |
最近记录: |