在Python中,import
语句用于导入其他模块或包中的函数、类和变量。有几种不同的方式来导入这些资源,包括使用import
、from ... import ...
和from ... import *
。
import:
- 这是最基础的导入形式,它将整个模块加载到当前命名空间中。你需要通过模块名调用其中的函数、类和变量。
import math result = math.sqrt(4) # 使用math.sqrt()
from ... import ...:
- 这种形式允许你只导入模块中的特定函数、类或变量,而不是整个模块。这有助于减少命名空间的污染,并且可以使代码更简洁。
from math import sqrt result = sqrt(4) # 直接使用sqrt(),不需要前缀math.
from ... import *:
- 这种形式会导入模块中定义的所有名称(除了以下划线开头的那些),并将它们添加到当前的命名空间中。虽然这种写法可以让你快速访问模块中的所有内容,但可能会导致命名冲突和代码难以维护的问题。因此,通常不推荐这种方式。
from random import * random_number = random() # 直接使用random(),不需要前缀random.
需要注意的是,使用from ... import ...
时,如果要导入的名称与当前作用域内的其他名称冲突,会导致意外的结果。为了避免这种情况,最好使用明确的导入语句,或者为导入的名称提供一个别名。例如:
from math import sqrt as square_root
这样就避免了与可能存在的名为sqr
的局部变量发生冲突。
此外,import
语句也可以用来导入包(即包含多个模块的目录结构)。在这种情况下,你可以使用点.
操作符来访问子模块。例如:
import xml.etree.ElementTree as ET
在这个例子中,我们从xml
包导入了etree
子模块,并为它赋予了一个别名ET
。