7.模块
7.0介绍
- 模块mycompany的结构如下,注意不可与python自带模块名称冲突
mycompany
├─ __init__.py
├─ abc.py
└─ xyz.py
7.1使用模块
7.1.1 自主编写一个hello模块
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
' a test module '
__author__ = 'Michael Liao'
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 arguments!')
if __name__=='__main__':
test()
-
sys
模块有一个argv
变量,用list存储了命令行的所有参数。argv
至少有一个元素,因为第一个参数永远是该.py文件的名称 -
运行
python3 hello.py
获得的sys.argv
就是['hello.py']
; -
运行
python3 hello.py Michael
获得的sys.argv
就是['hello.py', 'Michael']
。
7.1.2 作用域
-
public:
abc
,x123
,PI
等; -
特殊变量:
__xxx__
,如__name__
,__author__
-
private:
_xxx
,__xxx
private函数或变量是不应该被直接引用,而不是不能被直接引用,一般将private函数或变量进行封装和抽象,使外部不需要关心其内部细节
7.2安装第三方模块
- 安装指令
pip install [-i https://pypi.tuna.tsinghua.edu.cn/simple] package
-
若Python2.x和Python3.x共存,使用
pip3
-
PIL只支持Python2.7,可用Pillow取而代之
-
使用Anaconda管理Python环境
-
搜索模块路径
- 默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在
sys
模块的path
变量中
>>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', ..., '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages']
- 添加搜索目录
>>> import sys >>> sys.path.append('/Users/michael/my_py_scripts')
- 默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在
参考教程
(转载整理自网络,如有侵权,联系本人删除,仅供技术总结使用)