python入门到入坑——import

  • will 

原文链接:https://pythonguidecn.readthedocs.io/zh/latest/writing/structure.html

在很多其他语言中,include file 指令被预处理器用来获取文件里的所有代码并‘复制’ 到调用方的代码中。Python则不一样:include代码被独立放在模块命名空间里,这意味着您一般不需要担心include的代码可能造成不好的影响,例如重载同名方法。

也可以使用import语句的特殊形式 from modu import * 模拟更标准的行为。但 import *通常 被认为是不好的做法。使用 from modu import * 的代码较难阅读而且依赖独立性不足。 使用 from modu import func 能精确定位您想导入的方法并将其放到全局命名空间中。 比 from modu import * 要好些,因为它明确地指明往全局命名空间中导入了什么方法,它和 import modu 相比唯一的优点是之后使用方法时可以少打点儿字。

[...]
from modu import *
[...]
x = sqrt(4)  # sqrt是模块modu的一部分么?或是内建函数么?上文定义了么?

稍好

from modu import sqrt
[...]
x = sqrt(4)  # 如果在import语句与这条语句之间,sqrt没有被重复定义,它也许是模块modu的一部分。

最好的做法

import modu
[...]
x = modu.sqrt(4)  # sqrt显然是属于模块modu的。

导入深层嵌套的包可用这个方便的语法:import very.deep.module as mod。 该语法允许使用 mod 替代冗长的 very.deep.module

标签: