模块
一个.py
文件就称之为一个模块(Module)。
Python又引入了按目录来组织模块的方法,称为包(Package)。
注:每一个包目录下面都会有一个__init__.py
的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py
可以是空文件,也可以有Python代码,因为init.py本身就是一个模块,而它的模块名就是mycompany
使用模块
#!/usr/bin/env python3 #可让这个.py文件直接在Unix/Linux/Mac上运行
# -*- coding: utf-8 -*- #表示这个.py文件本身使用UTF-8编码
' a test module ' #这个字符串是模块代码的第一个字符串,表示文档注释
__author__ = 'Michael Liao' #利用__author__把作者写入
#--------------------以上是Python的标准文件模板---------------------
import sys #导入sys 模块
def test():
args = sys.argv #sys模块中的argv变量,至少有一个元素
if len(args)==1:
print('Hello, world!')
elif len(args)==2:
print('Hello, %s!' % args[1])
else:
print('Too many arguments!')
if __name__=='__main__':
test()
总结:在if __name__ == "__main__"
:之后的语句作为模块被调用的时候,语句之后的代码不执行;直接使用的时候,语句之后的代码执行。通常,此语句用于模块测试中使用。
作用域:
正常的函数和变量名是公开的(public),可以被直接引用
类似__xxx__
这样的变量是特殊变量,可以被直接引用,但是有特殊用途
类似_xxx
和__xxx
这样的函数或变量就是非公开的(private),不应该被直接引用
关于private:外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public。
- 安装第三方模块
使用Mac或Linux,安装pip本身这个步骤就可以跳过了
使用Windows,确保安装时勾选了pip和Add python.exe to Path
安装:pip install Pillow
模块搜索路径:
试图加载一个模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错:ImportError: No module named mymodule
要添加自己的搜索目录,有两种方法:
一是直接修改sys.path,添加要搜索的目录:
>>> import sys
>>> sys.path.append('/Users/michael/my_py_scripts')
#这种方法是在运行时修改,运行结束后失效。
第二种方法是设置环境变量PYTHONPATH