模块

 

Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。


模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。


模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。


格式


#!/usr/bin/python3
# 文件名: using_sys.py

import sys

print('命令行参数如下:')
for i in sys.argv:
print(i)

print('\n\nPython 路径为:', sys.path, '\n')


1、import sys 引入 python 标准库中的 sys.py 模块;这是引入某一模块的方法。

2、sys.argv 是一个包含命令行参数的列表。

3、sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。


极客编程python入门-模块与包_python学习



使用方法


import module1[, module2[,... moduleN]



包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。


比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。


就好像使用模块的时候,你不用担心不同模块之间的全局变量相互影响一样,采用点模块名称这种形式也不用担心不同库之间的模块重名的情况。


例子


sound/                          顶层包
__init__.py 初始化 sound
formats/ 文件格式转换子包
__init__.py
wavread.py
wavwrite.py
aiffread.py
aiffwrite.py
auread.py
auwrite.py
...
effects/ 声音效果子包
__init__.py
echo.py
surround.py
reverse.py
...
filters/ filters 子包
__init__.py
equalizer.py
vocoder.py
karaoke.py
...



建议


当你这样写代码的时候,代码中的变量会变得非常混乱。不仅仅是后面导入的同名函数会覆盖前面的问题,而且导致你在写一个函数的时候不能确定它到底来自哪里,代码可读性会变得非常差。


其实就不要懒,调用函数的时候直接这样调用:


import modname1
import modname2
import modname3

modname1.def1()
modname2.def1()
modname3.def1()


这样不仅不会让你找不见同名函数,也可以非常确切的看到这个函数来自哪里


如果你的库一层套一层,是这样的结构:


import path1.path2.path3.modname1


那么你可以用as关键字给它重命名,以便于缩短代码宽度,维持可读性。