Python 模块与包

2018-04-11  本文已影响44人  倔强的潇洒小姐

默认路径:Lib\site-packages

模块与包的概念

1、一个.py文件就可以成为一个模块(Module)
2、为什么要选用模块呢?
代码的封装和共用,因为不可能所有的代码都写在一个文件里面,所以就会有很多个.py文件,那么彼此之间怎么引用的呢,就是通过导入.py,而导入时该文件被称为模块
3、模块的层级关系
模块的上级是包(Package),包的上级还是包,包相当于一个文件夹,区别于目录结构的关键因素是包下面有一个init.py,它可以是空文件

模块与包.png

引用模块的方法

1、from 包名 import 模块名:代码中可以直接使用模块名称
(也可以直接导入模块中的方法:from 模块名 import 方法)

from 模块名 import 方法.png

2、import 包名
代码在引用时需要加.号,即包名.模块名,多级包目录就用多个.号

import 包名.png

3、import 模块名
前提:模块和当前py文件在同一目录

模块别名

import 模块名 as 别名:后续代码就可以使用别名来代替模块名了

模块别名.png

使用场景:比如版本升级导致这个模块包名和升级后的不一样,使用别名后代码内部不用改

比如说 python2 用的是import stringIO as A ,到了Python3,stringIO已经变成IO了,import IO as A,这样其余代码引用A的方法、函数就不会报错了

引包错误

如图所示:代码中引用的requests模块,运行程序时却提示“AttributeError: module 'requests' has no attribute 'get'”,这个错误与Python的引包机制有关

引包错误.png

原因:文件命名与引用的模块一样了,可能是自引用,也有可能是程序所在目录下出现了重名文件或目录

PS:当在程序中“import”一个模块或库时,Python首先会查找当前目录下是否存在同名的Python文件,若存在则会优先引用当前目录下的同名文件

所以呢,在给编写的程序文件命名时一定要注意

上一篇下一篇

猜你喜欢

热点阅读