Python包及模块的导入

1 模块(module)

模块一般是一个python文件(.py),直接使用import语句就可以导入一个模块.

2 包(package)

包是一个目录,可以使用import语句或者from + import语句来导入.也可以再后面加上as语句,将导入的包或者模块重新命名为其他的名字.

3 常规导入

直接使用import语句

例如

import os
os.getcwd()
## 'D:\\my github\\shen\\content\\en\\post\\2019-11-26-impot-module-package'

当然,也可以同时导入多个包.每个包中间使用逗号分隔开.

import os,sys,time

但是,这样导入多个包的时候,一方面不能使用as将包重新命名,另外也不符合python的编程风格指导,python建议一行只导入一个包.

4 使用from语句导入

很多时候,可能只想导入包的某个模块.这时候我们可以使用from语句跟import语句联合使用

from functools import lru_cache#只导入lru_cache模块
import functools#导入functools所有的模块

这样就可以直接使用lru_cache模块了.

当然,也可以导入这个包的所有模块.

from os import *

这样做有一个很大的问题,就是打乱了你的命名空间,因为很有可能你自己定义的函数或者变量跟你导入的包中的模块名时相同的,这时候就有可能发生冲突,所以并不推荐这样做.

5 使用as语句

使用as语句可以将导入的包或者模块重新命名,对于那些包名字比较长而且不太好打印的包来说,非常有用.

import numpy as np
import pandas as pd
np.array([1,2,3])
## array([1, 2, 3])
test = np.array(np.arange(9))
test = test.reshape((3,3))
test
## array([[0, 1, 2],
##        [3, 4, 5],
##        [6, 7, 8]])
test2 = pd.DataFrame(test)
test2
##    0  1  2
## 0  0  1  2
## 1  3  4  5
## 2  6  7  8

6 我倾向的方式

还是使用import + as的方式更加可靠,然后使用pkg_name.function()的方式进行调用.

Avatar
Xiaotao Shen
Postdoctoral Research Fellow

Metabolomics, Multi-omics, Bioinformatics, Systems Biology.

Related

Next
Previous
comments powered by Disqus