python模块

Posted FuZZ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python模块相关的知识,希望对你有一定的参考价值。

模块介绍

为什么用模块

在代码量庞大的时候,如果靠一个脚本来进行函数式编程,对于脚本的可读性及后期脚本的维护带来极大的不便,而且无法分辨函数间的调用关系,所以,可以将一组功能类似的函数单独放在一个py文件里,在主py文件进行调用。这样既可以提高可读性,哪个流程出问题了,很快就定位到函数了,也便于维护。而这个由多个功能类似的函数堆积成的脚本,就简单称之为模块

如何导入

  • import 指令 使用import命令导入模块。会将模块所有对象导入到当前命名空间中,调用模块里对象时,需加模块名,如 sys.path,即调用sys模块的path对象。python有一个定义模块位置的变量,即sys.path,
>>> import sys
>>> sys.path
[‘‘, /usr/local/python3/lib/python35.zip, /usr/local/python3/lib/python3.5, /usr/local/python3/lib/python3.5/plat-linux, /usr/local/python3/lib/python3.5/lib-dynload, /usr/local/python3/lib/python3.5/site-packages]

 

当python解释器遇到import指令时,会先在当前脚本目录查找指令后面的模块名,如果没有会继续按sys.path里定义的位置依次查找,直到找到这个模块为止,如果到最后没查找到,python会报一个模块找不到的错误

import prettytable
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named prettytable

 

  • from ... import 指令

该指令会将模块中导入一个指定的部分到当前命名空间中,在调用函数对象时,可直接使用函数对象名,不需要加函数名。此用法一般用于要导入的模块里对象和本脚本中对象命名有冲突时候,至加载需要的模块对象,也可以使用as 将此对象重命名,如

>>> from sys import path
>>> path
[‘‘, /usr/local/python3/lib/python35.zip, /usr/local/python3/lib/python3.5, /usr/local/python3/lib/python3.5/plat-linux, /usr/local/python3/lib/python3.5/lib-dynload, /usr/local/python3/lib/python3.5/site-packages]
>>> from sys import path as abc
>>> abc
[‘‘, /usr/local/python3/lib/python35.zip, /usr/local/python3/lib/python3.5, /usr/local/python3/lib/python3.5/plat-linux, /usr/local/python3/lib/python3.5/lib-dynload, /usr/local/python3/lib/python3.5/site-packages]

 

  • from ... import * 指令

和import 导入方法一样。只不过调用的时候不需要加模块名

>>> from sys import *
>>> path
[‘‘, /usr/local/python3/lib/python35.zip, /usr/local/python3/lib/python3.5, /usr/local/python3/lib/python3.5/plat-linux, /usr/local/python3/lib/python3.5/lib-dynload, /usr/local/python3/lib/python3.5/site-packages]
>>> version
3.5.1 (default, Jun  5 2016, 16:46:00) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]

 

PS:自定义模块命名需要规范,不能和python内置的模块名重合,否则,将优先调用当前代码目录下的模块,造成python内置模块不能使用

以上是关于python模块的主要内容,如果未能解决你的问题,请参考以下文章

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

python之模块和包

python中的模块

Python 常用模块学习

python之模块和包

Python 八Python模块