Python 模块的导入

101

在平时的使用中,主要是要知道:

  • 常规导入使用 from 语句导入这两种不同方式下,该如何调用函数

常规导入[1]

1
2
3
>>> import random
>>> random.randrange(7) # 调用相关函数时需要说明模块名
5

这种不消多说,只需要使用import一词,然后指定希望导入的模块或包即可。不过调用相关函数时需要像上面那样说明模块名。

Python 风格

虽然可以一次性导入多个包或模块,但 Python风格指南建议将每个导入语句单独成行。

对模块重命名

1
2
3
>>> import random as r
>>> r.random()
0.4967213766468448

使用from语句导入[1:1]

1
2
3
>>> from random import randint
>>> randint(1,1024) # 相对于常规导入,使用 from 语句导入可以直接调用该函数
779

这种方式允许我们只导入一个模块或库中的某个部分[2]。同时,相对于常规导入,使用 from 语句导入可以直接调用该函数。

全盘导入

1
from os import *

❗️: 虽然这种做法有时挺方便,但是不建议这样做,因为会打乱命名空间,造成混乱。

选择性导入多个项

圆括号法

1
2
from os import (path, walk, unlink, uname, 
remove, rename)

续行符法

1
2
from os import path, walk, unlink, uname, \
remove, rename

相对导入[1:2]

使用原因

为了避免偶然情况下导入标准库中的模块产生冲突

使用场合

如果你编写了很多相关性强的代码,那么应该采用这种导入方式。你会发现PyPI上有很多流行的包也是采用了相对导入

参考


  1. Python 101: All about imports | The Mouse Vs. The Python 中文翻译: Python导入模块的几种姿势| 编程派 | Coding Python ↩︎ ↩︎ ↩︎

  2. 在复杂的代码库中,能够看出某个函数是从哪里导入的这点很有用的 ↩︎