模块和包
在Python中,一个.py文件就称之为一个模块(Module)
包是指一个包含模块与一个特殊的
__init__.py
文件的文件夹,后者向 Python 表明这一文件夹是特别的,因为其包含了 Python 模块。
注意自建模块的名称不要和内置模块的名称一样python内建模块文档 :
网络异常,图片无法展示
|
代码如下:
#!/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() 复制代码
第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行 第2行注释表示.py文件本身使用标准UTF-8编码 第4行是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释; 第6行使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名;
安装第三方模块
通过包管理工具pip安装 一般来说,第三方库都会在Python官方的
pypi.python.org
网站注册
网络异常,图片无法展示|
比如有 图像处理库Pillow ,Web框架Flask,科学计算Numpy等等
装上Anaconda,就相当于把数十个第三方模块自动安装好了,非常简单易用
模块搜索路径
默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中:
import sys print(sys.path) 复制代码
添加自己的搜索目录的两种方法:
- 直接修改sys.path,添加要搜索的目录:(在运行时修改,运行结束后失效)
sys.path.append('/Users/michael/my_py_scripts')
- 设置环境变量
PYTHONPATH
,该环境变量的内容会被自动添加到模块搜索路径中。设置方式与设置Path环境变量类似。注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响。
作用域
分为公开和非公开(private) 非公开的一般以下划线_
或者双下划线__
开头
private函数和变量“不应该”被直接引用,而不是“不能”被直接引用,是因为Python并没有一种方法可以完全限制访问private函数或变量,但是,从编程习惯上不应该引用private函数或变量。
小结:
外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public
这个应该属于面向对象的思想了,封装好这个模块后提供public的函数or变量给其他使用