Python 模块

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。

为避免模块名冲突,引入按目录来组织模块的方法,称为包

包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。

比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。

import 语句

想使用 Python 源文件,只需在另一个源文件里执行 import 语句。可自定义导入模块名字:import 导入模块名字 as 自定义名字

from … import 语句

Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中

使用自定义模块中的类:cd到执行文件目录下  from 模块名(即文件名) import 类名 如我在new2.py中写了一个Vector类 from new2 import Vector 

from … import * 语句

把一个模块的所有内容全都导入到当前的命名空间也是可行的

模块的导入会“路径搜索”文件系统“预定义区域”

1 import sys
2 sys.path    #显示搜索路径
3 sys.path.append('path')    #追加搜索路径

 

使用模块

 1 #!/usr/bin/python3
 2 import sys   #sys是内建模块
 3 
 4 def test():
 5         args = sys.argv  #sys模块的argv变量至少有一个元素,第一个参数永远是该.py文件的名称
 6         if len(args) == 1:
 7             print('Hello word:')
 8         elif len(args) == 2:
 9             print('Hello,%s!' % args[1] )
10         else:
11             print('Too many argments!')
12     
13 if __name__ == '__main__':
14     test()

当我们在命令行运行hello模块文件时,Python解释器把一个特殊变量__name__置为__main__,而如果在其他地方导入该hello模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。

 

类似__xx__这种特殊变量可直接引用,但有特殊用途

类似_xx和__xxx这种函数或变量则是非公开的,不应该被直接引用

 

安装第三方模块  命令

pips install Pillow

 

模块结构和布局

 1 #(1)起始行
 2 #(2)模块文档(介绍模块的功能及重要全局变量的含义)
 3 #(3)模块导入,推荐先导标准库模块,再导第三方模块,最后导应用程序自定义模块,用一个空行分割这三类模块的导入语句
 4 #(4)变量定义(尽量使用局部代替全局)
 5 #(5)类的定义
 6 #(6)函数定义
 7 #(7)主程序
 8 
 9 ##################例子#################
10 #!/usr/bin/env python3
11 #-*- coding:utf-8 -*-
12 
13 '''这是一个测试模块'''
14 
15 import sys
16 
17 debug = True
18 
19 class FooClass(object):
20     "Foo class"
21     pass
22 
23 def test():
24     "test function"
25     foo = FooClass()
26     if debug:
27         print('ran test()')
28 
29 #(7)主程序        
30 if __name__ == '__main__':
31     test()

 

(7)主程序

  无论这个模块是被别的模块导入还是作为脚本直接执行都会执行这部分代码,根据执行的模式调用不同的函数代码,如果模块是被导入,__name__的值为模块的名字,如果模块是被直接执行 __name__的值为__main__

 

posted @ 2019-04-20 13:01  北风吹沙  阅读(220)  评论(0编辑  收藏  举报