当我们在 Python 中引入某个模块时,使用 import
语句。这些模块可以是 Python 内置模块、第三方库或者自己编写的模块。Python 中的 import
机制是其一个重要的特性之一,本文将详细讲解这个机制。
import
语句的语法格式
Python 中的 import
语句有两种语法格式,分别为 import module_name
和 from module_name import variable_name
。其中,module_name
表示要引入的模块名,可以是 Python 内置模块、第三方库或者自己编写的模块;variable_name
表示要引入模块中的变量名。
import module_name
语法格式
import module_name
语法格式用于引入整个模块,即将整个模块加载到内存中,以便调用其中的函数或变量。可以通过以下代码讲述 import
语句的使用方法:
import math # 引入内置数学模块
a = math.sqrt(16) # 调用数学模块中的平方根函数
print(a)
在上述代码中,我们首先使用 import
语句引入 Python 内置的 math 模块,然后调用了其中的 sqrt()
函数,计算出 16 的平方根并打印在屏幕上。
from module_name import variable_name
语法格式
from module_name import variable_name
语法格式用于只引入模块中的某个变量或函数,而不是整个模块。可以通过以下代码展示 from import
语句的使用方法:
from os.path import abspath # 从内置 os 模块中选择 abspath 函数
print(abspath('first.py'))
在上述代码中,我们使用 from import
语句引入内置 os 模块中的 abspath 函数,并在打印当前目录下 first.py
文件的绝对路径时使用了该函数。
import
机制的加载过程
Python 在引入模块时,会按照以下的顺序查找模块并将其加载到内存中:
- 首先,Python 会在内置库中查找模块。如果要引入的模块是 Python 内置模块,则从内部库中找到相关的模块并加载。
- 如果不是 Python 内置的模块,Python 会接着在环境变量
sys.path
中指定的目录中查找模块。sys.path
是一个列表,包含了 Python 解释器搜索模块文件的路径列表。 - 如果以上两种方式均无法找到要引入的模块,则会引发
ImportError
异常。
同一模块的多次引入
在同一模块中,多次引入是没有问题的。当同一模块被引入多次时,Python 只会加载一次该模块。
举一个简单的例子:
import first # 将 first 模块加载到内存中
import first # 不会重复加载 first 模块
在上述代码中,我们多次引入了 first
模块,但是 Python 只会加载一次该模块。
总结
Python 的 import
机制是其一个重要的特性,可以让我们将代码组织成更加可维护、易复用的模块。在引入模块时,Python 会按照一定的顺序进行查找和加载。在同一模块被引入多次时,Python 只会加载一次该模块,不会重复消耗内存资源。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python中import机制 - Python技术站