模块(Modules)
2015-09-19 10:59
309 查看
一、引入模块
模块:当编写更大的应用程序时,所有的代码肯定会分成多个文件,这样便于维护,另外已经编写好的函数和对象在被多个程序中使用时,不用把函数和对象拷贝到每个程序中。模块支持以上功能,在Python中,一个.py文件就构成一个模块,通过模块,你可以调用其它文件中的程序。
模块名称:fibo.py
路径:E:\djcode\untitled
__author__ = 'Administrator' def laugh(): print 'HaHaHaHa'
引入模块:
>>> import fibo #引入了fibo模块 >>> fibo.Laugh() HaHaHaHa >>> fibo.__name__ 'fibo' >>> from fibo import laugh #引入了fibo模块,此种引入方式fibo未定义 >>> Laugh() HaHaHaHa
二、搜索路径
Python会在以下路径中搜索它想要寻找的模块:程序所在的文件夹
标准库的安装路径
操作系统环境变量PYTHONPATH所包含的路径
如果你有自定义的模块,或者下载的模块,可以根据情况放在相应的路径,以便Python可以找到。
三、dir()函数
内置函数dir()用来找出模块中定义了哪些名字,它返回一个排好序的字符串列表:>>> import fibo >>> dir(fibo) ['__author__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'Laugh',]
注意它列出了所有类型的名称: 变量、 模块、 函数等。
四、包(Packages)
包:可以将功能相似的模块放在同一个文件夹中,构成一个模块包。该文件夹中必须包含一个__init__.py的文件,提醒Python,该文件夹为一个模块包,__init__.py可以是一个空文件。目录结构:
Untitled(E:\djcode\untitled)
Directory1
D1fibo.py
Package1
__init__.py
PK1fibo.py
PK2fibo.py
PK3fibo.py
PK4fibo.py
PK5fibo.py
fibo.py
在E:\djcode\untitled目录下引入fibo.py模块
>>> import fibo #导入Python解释器的是fibo这个模块名称,若访问fibo模块中的函数需通过模块名称来访问 >>> fibo.laugh() HaHaHaHa >>> from fibo import laugh #导入Python解释器的是fibo这个模块内所有的函数和对象,但不会导入fibo这个模块名称,因此fibo将未定义 >>> laugh() HaHaHaHa
在E:\djcode\untitled目录下引入包(Package1)下的PK1fibo.py等模块:
>>> import Package1.PK1fibo >>> Package1.PK1fibo.laugh() PK1fiboHaHaHaHaHaHa >>> from Package1 import PK1fibo,PK2fibo,PK3fibo,PK4fibo,PK5fibo >>> PK1fibo.laugh() PK1fiboHaHaHaHaHaHa >>> from Package1 import * #当包(Package1)下的__init__.py文件为空时, 该导入模块等同于from Package1 import PK1fibo,PK2fibo,PK3fibo,PK4fibo,PK5fibo, 但当前__init__.py文件中包含有__all__ = ["PK1fibo","PK4fibo","PK5fibo"], 此时等同于from Package1 import PK1fibo, PK4fibo,PK5fibo >>> PK1fibo.laugh() PK1fiboHaHaHaHaHaHa >>> PK2fibo.laugh() Traceback (most recent call last): File "<input>", line 1, in <module> NameError: name 'PK2fibo' is not defined
在E:\djcode\untitled目录下引入目录(Directory1)下的D1fibo.py模块:
>>> import sys >>> sys.path.append("Directory1") >>> from D1fibo import laugh >>> laugh() D1fiboHaHaHaHaHaHa
在E:\djcode\untitled\ Directory1目录下引入fibo.py模块:
>>> import sys >>> sys.path.append("..") >>> from fibo import laugh >>> laugh() HaHaHaHa
五、总结
from module import functionimport module
__init__.py
相关文章推荐
- Quick-cocos2d-x3.3 Study (九)--------- 为物体添加物理特性
- 黑马程序员-------OC----关联关系和依赖关系
- Linux系统挂载操作mount详解
- 日本国会连夜正式通过安保法案
- java 类和对象
- sublime 自动触发补全
- UNNAMED FILE ERROR IN STANDBY AFTER ADDING NEW FILE TO PRIMARY DATABASE – ORA-01111, ORA-01110, ORA-
- hdu 5040 Instrusive(bfs+优先队列)(模拟)
- Can't read dir of '.' (errno: 13)
- 【poj3734】矩阵乘法求解
- java集合框架之Set
- BusyBox getty
- A*B Problem 485 (数学题+九余数定理)
- Ubuntu下通过apt-get安装软件
- Yii2 数据库操作汇总
- 软工之可行性分析和需求分析
- java Serializable 理解
- 修路方案 118 (prim判断最小生成树的不唯一性)
- Pagerstwich tab样式加下拉刷新(三)
- AJAX工作原理