Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
例如:
support.py表示一个模块,模块名为文件名即support。
def print_func( par ):
print "Hello : ", par
return调用示例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 导入模块
import support
# 调用模块里包含的函数
support.print_func("Runoob")包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。
__init__.py 用于标识当前文件夹是一个包,可以为空。
即关系范围如下:
一个包中可以包含多个模块(Python文件),一个模块(Python文件)可以包含多个独立功能的函数。
package > module > function可以通过as来给模块设定别名缩写,方便引用。
# import 模块
import module1[, module2[,... moduleN]]
# import 模块中的函数
import module.function # 等价于 from module import function# 格式
from modname import name1[, name2[, ... nameN]]
# import 模块中函数
from module import function
# import 包中的模块
from package import module as alias把一个模块的所有内容全都导入到当前的命名空间。
from module import *- 变量:表示对象的名字或标识
- 命名空间:表示变量和对象的范围
- 局部变量和全局变量重名,局部变量会覆盖全局变量。全局变量用global表示。
Python解析器对模块位置的搜索顺序:
- 当前目录。
- PYTHONPATH的每个目录。
- 查看Python安装时的默认包路径。例如:
/usr/lib64/python2.6/site-packages。
可以通过查询sys.path查看模块搜索路径。
环境变量PYTHONPATH有多个目录组成,类似环境变量PATH。
例如
export PYTHONPATH=/usr/local/lib/python-
将项目的根目录加到PYTHONPATH变量中
-
sys.path.append("..")
示例:
project
├── package1
│ ├── __init__.py
│ ├── module_11.py
│ └── module_12.py
├── package2
│ ├── __init_.py
│ ├── module_21.py
│ └── module_22.py
├── main.py
└── tool.pymodule_11.py文件导入module_12.py模块
import module_12main.py文件导入module_12.py模块
from package1 import module_12
# 或者
import package1.module_12module_11.py导入上级目录的tool.py模块
import sys
sys.path.append("..")
import tool相当于通过sys.path.append("..") 进入上级目录,然后类似导入同级目录模块的方式导入。
module_11.py导入package2包的module_21.py模块
import sys
sys.path.append("..")
from package2 import module_21相当于通过sys.path.append("..") 进入上级目录,然后类似导入下级目录模块的方式导入。
参考: