热门搜索 :
考研考公
您的当前位置:首页正文

Python导入模块,Python import用法(超级详细)

2024-07-21 来源:伴沃教育

对于一个真实的 Python 程序,我们不可能自己完成所有的工作,通常都需要借助于第三方类库。此外,也不可能在一个源文件中编写整个程序的源代码,这些都需要以模块化的方式来组织项目的源代码。

使用 import 导入模块的语法,但实际上 import 还有更多详细的用法,主要有以下两种:

import 模块名1 [as 别名1], 模块名2 [as 别名2],…: 导入整个模块。
from 模块名 import 成员名1 [as 别名1],成员名2 [as 别名2],…: 导入模块中指定成员。

上面两种 import 语句的区别主要有以下几点:

第一种 import 语句导入整个模块内的所有成员(包括变量、函数、类等);第二种 import 语句只导入模块内的指定成员(除非使用 form 模块名 import *,但通常不推荐使用这种语法)。

当使用第一种 import 语句导入模块中的成员时,必须添加模块名或模块别名前缀;使用第二种 import 语句导入模块中的成员时,无须使用任何前缀,直接使用成员名或成员别名即可。

下面程序使用导入整个模块的最简单语法来导入指定模块:

# 导入sys整个模块
import sys
# 使用sys模块名作为前缀来访问模块中的成员
print(sys.argv[0])

上面第 2 行代码使用最简单的方式导入了 sys 模块,因此在程序中使用 sys 模块内的成员时,必须添加模块名作为前缀。

运行上面程序,可以看到如下输出结果(sys 模块下的 argv 变量用于获取运行 Python 程序的命令行参数,其中 argv[0] 用于获取该 Python 程序的程序名)。

import test.py

在导入整个模块时可以为模块指定别名。例如如下程序:

# 导入sys整个模块,并指定别名为s
import sys as s
# 使用s模块别名作为前缀来访问模块中的成员
print(s.argv[0])

第2行代码在导入 sys 模块时才指定了别名 s,因此在程序中使用 sys 模块内的成员时,必须添加模块别名 s 作为前缀。运行该程序,可以看到如下输出结果:

import test2.py

使用导入整个模块的语法也可一次导入多个模块,多个模块之间用逗号隔开。例如如下程序:

# 导入sys、os两个模块
import sys,os
# 使用模块名作为前缀来访问模块中的成员
print(sys.argv[0])
# os模块的sep变量代表平台上的路径分隔符
print(os.sep)

上面第 2 行代码一次导入了 sys 和 os 两个模块,因此程序要使用 sys、os 两个模块内的成员,只要分别使用 sys、os 模块名作为前缀即可。在 Windows 平台上运行该程序,可以看到如下输出结果(os 模块的 sep 变量代表平台上的路径分隔符):

import test3.py
\

同时,在导入多个模块时也可以为模块指定别名,例如如下程序:

# 导入sys、os两个模块,并为sys指定别名s,为os指定别名o
import sys as s,os as o
# 使用模块别名作为前缀来访问模块中的成员
print(s.argv[0])
print(o.sep)

上面第 2 行代码一次导入了sys 和 os 两个模块,并分别为它们指定别名为 s、o,因此程序可以通过 s、o 两个前缀来使用 sys、os 两个模块内的成员。在 Windows 平台上运行该程序,可以看到如下输出结果:

import_test4 .py
\

接下来介绍使用 from...import 导入模块内指定成员的用法。下面程序使用 from...import 导入模块成员的最简单语法来导入指定成员:

# 导入sys模块的argv成员
from sys import argv
# 使用导入成员的语法,直接使用成员名访问
print(argv[0])

第 2 行代码导入了 sys 模块中的 argv 成员,这样即可在程序中直接使用 argv 成员,无须使用任何前缀。运行该程序,可以看到如下输出结果:

from import test.py

使用 from...import 导入模块成员时也可为成员指定别名,例如如下程序:

# 导入sys模块的argv成员,并为其指定别名v
from sys import argv as v
# 使用导入成员(并指定别名)的语法,直接使用成员的别名访问
print(v[0])

第 2 行代码导入了 sys 模块中的 argv 成员,并为该成员指定别名 v,这样即可在程序中通过别名 v 使用 argv 成员,无须使用任何前缀。运行该程序,可以看到如下输出结果:

from import test2.py

在使用 form...import 导入模块成员时也可同时导入多个成员,例如如下程序:

# 导入sys模块的argv,winver成员
from sys import argv, winver
# 使用导入成员的语法,直接使用成员名访问
print(argv[0])
print(winver)

上面第 2 行代码导入了 sys 模块中的 argv、 winver 成员,这样即可在程序中直接使用 argv、winver 两个成员,无须使用任何前缀。运行该程序,可以看到如下输出结果(sys 的 winver 成员记录了该 Python 的版本号):

from import test3.py
3.6

在使用 from...import 同时导入多个模块成员时也可指定别名,同样使用 as 关键字为成员指定别名,例如如下程序:

# 导入sys模块的argv,winver成员,并为其指定别名v、wv
from sys import argv as v, winver as wv
# 使用导入成员(并指定别名)的语法,直接使用成员的别名访问
print(v[0])
print(wv)

上面第 2 行代码导入了 sys 模块中的 argv、winver 成员,并分别为它们指定了别名 v、wv,这样即可在程序中通过 v 和 wv 两个别名使用 argv、winver 成员,无须使用任何前缀。

在使用 from...import 语法时也可一次导入指定模块内的所有成员,例如如下程序:

#导入sys 棋块内的所有成员
from sys import *
#使用导入成员的语法,直接使用成员的别名访问
print(argv[0])
print(winver)

上面代码一次导入了 sys 模块中的所有成员,这样程序即可通过成员名来使用该模块内的所有成员。该程序的输出结果和前面程序的输出结果完全相同。

需要说明的是,一般不推荐使用“from 模块 import”这种语法导入指定模块内的所有成员,因为它存在潜在的风险。比如同时导入 module1 和 module2 内的所有成员,假如这两个模块内都有一个 foo() 函数,那么当在程序中执行如下代码时:

foo()

上面调用的这个 foo() 函数到底是 module1 模块中的还是 module2 模块中的?因此,这种导入指定模块内所有成员的用法是有风险的。

但如果换成如下两种导入方式:

import module1
import module2 as m2

接下来要分别调用这两个模块中的 foo() 函数就非常清晰。程序可使用如下代码:

#使用模块module1 的模块名作为前缀调用foo()函数
module1.foo()
#使用module2 的模块别名作为前缀调用foo()函数
m2.foo()

或者使用 from...import 语句也是可以的:

#导入module1 中的foo 成员,并指定其别名为foo1
from module1 import foo as fool
#导入module2 中的foo 成员,并指定其别名为foo2
from module2 import foo as foo2

此时通过别名将 module1 和 module2 两个模块中的 foo 函数很好地进行了区分,接下来分别调用两个模块中 foo() 函数就很清晰:

foo1() #调用module1 中的foo()函数
foo2() #调用module2 中的foo()函数


伴沃教育还为您提供以下相关内容希望对您有帮助:

python中import

1. 基本用法:当我们想要使用某个模块的功能时,可以使用`import`语句将其导入。例如,`import math`会导入math模块,之后我们就可以使用math模块中的函数,如`math.sqrt`来计算平方根。2. 导入整个模块:使用`import`语句导入模块后,我们需要用模块名作为前缀来访问该模块中的函数或变量。这样做可以避...

python中模块导入的方法

Python中模块导入的方法有import、from…import和import as三种。import可以导入整个模块,from…import可以只导入模块的指定部分,而import as则可以将模块重命名。拓展:此外,Python还支持动态加载模块,如importlib.import_module()方法可以动态加载模块,可以根据程序的需要动态加载指定的模块。

python导入模块的语句

当我们使用`import 模块名`语句导入模块时,Python会在其模块路径(包括标准库路径和第三方库路径)中查找该模块。如果找到该模块,Python会加载并执行该模块的顶层代码(即非函数和非类的代码)。然后,该模块的属性和函数就可以在当前代码中使用了。值得注意的是,每个导入的模块只会执行一次顶层代码,即...

Python导入(import)模块的方法

1. **全模块导入**:最基本的导入方式是使用`import`语句,Python会搜索并加载模块,将其内容添加到当前的命名空间,方便你直接使用模块内的函数、类和变量。2. **选择性导入**:为了代码组织和避免冲突,你可以导入特定的函数或类,只需指定你所需的名称即可,不需要模块名前缀。3. **别名导入**...

python导入模块的三种方法

python中模块导入的方法:方式一:使用 import 语句来引入模块 直接使用关键词import,后面跟具体的模块名称,就可以导入某一个模块。同一个模块不管执行了多少次import,都只会被导入一次,以防止模块被一遍又一遍的执行。方式二:使用from…import 语句来引入模块 在使用import语句导入模块时会将整个模块...

import在python中的用法

import的用法有以下几种:1.导入整个模块:import module_name.这种方式将整个模块导入到当前的命名空间中。我们可以使用模块名加点操作符来访问模块中的函数、类和变量。2.导入模块中的特定函数或类:from module_name import function_name, class_name.这种方式只导入模块中指定的函数或类,而不是整个...

详解Python中import方法引入模块

python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。下面将具体介绍几种常用情况:(1)主程序与模块程序在同一目录下:如下面程序结构:`-- src |-- mod1.py `-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *;(...

python基础-关键字import,from导入库

1. 导入库基本格式为 import 库名,库搜索路径包括当前目录和Python内置库目录。如果库不在当前文件夹,可以使用 pip install 库名 安装。1.1 当前文件夹导入例如,test.py中,通过 import mod 导入dir文件夹下的mod.py内容,即使mod.py不在当前目录。1.2 Python库目录导入安装的库如numpy,通过 ...

Python Import 详解

如importlib.import_module,提供了更便捷的导入方式,与标准import语法类似,但建议使用importlib.import_module以支持绝对和相对导入。最后,import的执行顺序是:默认的标准库 > 程序根目录的同级文件 > PYTHONPATH环境变量指定的目录 > 标准库 > 第三方库。理解这个顺序有助于避免潜在的导入问题。

python的fromimport和import的区别

一、基本解释 import语句:用于导入整个模块。当你使用import语句导入一个模块时,Python会执行该模块内的所有代码。导入后,你可以通过模块名来访问该模块内定义的函数、类等。from ... import语句:用于从某个模块中导入特定的函数、变量或类。这种方式不会导入整个模块,只导入指定的内容。这样做可以...

Top