一、模块
- 模块即 .py文件,同时模块遵循Python变量命名规范,不使用中文、特殊字符。
- 模块名不要和系统模块名冲突,最好先查看是否已经存在该模块,检查的方法是在Python交互环境执行import 模块名,如果成功说明系统存在此模块。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'a test module'
__author__ = 'ruixi'
import sys
def test():
args = sys.argv
if len(args) == 1:
print('Hello world!')
elif len(args) == 2:
print('Hello, %s' % args[1])
else:
print('Too many argument')
if __name__ == '__main__':
test()
- 当我们在命令行运行test模块文件时,Python解释器把一个特殊变量__name__置为__main__,而如果在其他地方导入该test模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。
二、作用域
- 我们希望有的函数和变量仅仅在模块的内部进行使用。在Python中,是通过下划线
_
前缀来实现的。
- 类似
__xxx__
这样的变量是特殊变量,可以直接被引用,但是有特殊用途,比如上面的__author__
、__name__
- 类似
_xxx
和__xxx
这样的函数或变量就是非公开的(private),不应该被直接引用。
三、安装第三方模块
- 安装第三方模块,是通过包管理工具pip完成的。
- 如果你在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。
- Python3和Python2共存的时候,应该使用pip3,
pip install Pillow
- 可以考虑安装
Anaconda
,可以将很多模块一次安装好。
- 模块搜索路径:默认会搜索当前目录、所有安装的内置模块和第三方模块,搜索路径存放在
sys
模块的path
变量中,如果要添加自己的搜索目录,1、直接修改sys.path
,添加要搜索的目录,这种方法在运行时修改,运行后失效;2、设置环境变量PYTHONPATH
,该环境变量的内容会自动添加到模块搜索路径中。
import sys
sys.path.append('/User/michael/my_py_scripts')