夜光序言:
爱情是什么,爱情是平平淡淡的在一起,爱情是一份信任,爱情是容不得猜疑,爱情,这就是爱情,当激情退后,不分开,那才叫爱情。
正文:
3.6 Python 模块
3.6.1 教学目标
在计算一个数的平方根时我们使用了语句:
import math
目的是引入 math 模块。
模块就是一个保存了 Python 代码的文件,模块能定义函数,类和变量。
目标就是来编写与使用自己的模块,从而加深对系统模块的认识。
3.6.2 Python 模块使用
我们通过一个例子来说明模块的建立与使用。
例 3-6-1:设计模块并引用它
第一步: 设计一个程序 myModule.py,它包含两个函数 myMin,myMax:
def myMin(a,b):
c=a
if a>b:
c=b
return c
def myMax(a,b):
c=a
if a<b:
c=b
return c
把这个程序保存到 d:\temp 目录
第二步: 设计另外一个程序 abc.py,保存到相同的目录 d:\temp,在 abc.py 中引用
myModule.py:
import myModule
print(myModule.myMin(1,2),myModule.myMax(1,2))
或者:
from myModule import myMin,myMax
print(myMin(1,2),myMax(1,2))
执行 abc,py 结果:
1 2
由此可见我们在 abc.py 中通过
import myModule
语句引入了 myModule 模块,因此在 abc.py 程序中可以使用 myModule.py 中定义的
myMin,myMax 函数。
注意:
被引用的模块要放在与引用程序相同的目录下,或者放在 python 能找到的目录下;
在引用时不要加".py",不能写成 import myModule.py;
引用模块的函数时要写模块名称与函数名称,用“.”连接,例如 myModule.myMin;
通过模块我们可以把已经编写好的程序组织在一个个模块中,下次直接引用就可以了,
而不用再在本程序中重新编写函数。
系统已经编写好很多模块,例如数学模块 math,引入 math 模块就可以使用系统编写好的数学函数。
例 3-6-2:设计模块放在子目录中并引用它
第一步: 设计一个程序 myModule.py,它包含两个函数 myMin,myMax,把这个程序保存到 d:\temp\mine 目录。
第二步:设计另外一个程序 abc.py,保存到目录 d:\temp,在 abc.py中引用 myModule.py:
from mine.myModule import myMin,myMax
print(myMin(1,2),myMax(1,2))
执行 abc.py 结果:
1 2
3.6.3 Python 模块位置
Python 模块是设计好的 Python 程序,前面的例子我们看到这个模块可以放在应用程序的目录内或者它的子目录内。那么一般的模块应该放在哪里呢?Python 中的模块一般放在安装目录的 lib 文件夹中。
例 3-6-3:设计模块放在 lib 目录中并引用它
第一步: 设计一个程序 myModule.py,它包含两个函数 myMin,myMax,把这个程序保
存到 Python 安装目录的 lib 目录中。
第二步:设计另外一个程序 abc.py,保存到目录 d:\temp,在 abc.py中引用 myModule.py:
from myModule import myMin,myMax
print(myMin(1,2),myMax(1,2))
执行 abc.py 结果:
1 2
3.6.4 【案例】测试 Python 模块的位置
1、案例描述
Python 的模块是 Python 的重要部分,我们常常安装一个 Python 的程序包就是安装一个
文件夹,在这个文件夹中共有很多模块,至少这个程序包或者模块的位置是十分重要的。
2、案例分析
一般 Python 中能存放模块的目录可以通过 sys.path 得到,在 Python 的命令行中输入:
>>>import sys
>>>sys.path
就可以看到 sys.path 都有什么目录,模块可以放在 sys.path 包含的任何一个目录中。
3、案例代码
import sys
paths=sys.path
for p in paths:
print(p)
执行这个程序,在 Anaconda 的环境下看到以下的结果:
C:\untitled
C:\ProgramData\Anaconda3\python36.zip
C:\ProgramData\Anaconda3\DLLs
C:\ProgramData\Anaconda3\lib
C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\lib\site-packages
C:\ProgramData\Anaconda3\lib\site-packages\Sphinx-1.5.1-py3.6.egg
C:\ProgramData\Anaconda3\lib\site-packages\win32
C:\ProgramData\Anaconda3\lib\site-packages\win32\lib
C:\ProgramData\Anaconda3\lib\site-packages\Pythonwin
C:\ProgramData\Anaconda3\lib\site-packages\setuptools-27.2.0-py3.6.egg
当然不同的开发环境下结果不同,从这些目录乐意看到 Python 的程序包或者模块存放的
位置是很多的。