课程概要:
1、认识Python 模块
2、字节编译
3、from … import 详解
4、认识 name 属性
5、自定义模块
6、dir() 函数
1、认识Python 模块
什么是模块?
如何导入模块?
sys 模块
一、什么是模块?
函数是可以实现一项或多项功能的一段程序。我们的模块是函数功扩展,模块是可以实现一项或多项功能的程序块。我们从定义可以发现,函数是一段程序,模块是一项程序块,也就是说函数和模块都是用来实现功能的,但是模块的范围比函数要广,在模块里面,可以重用多个函数。
所有的模块是安装在Python27/Lib 下的,大多是以 .py 结尾的,也有以 .pyc结尾
二、如何导入模块
Python 中在一个程序中要使用某个模块,不能直接使用模里面的功能。在使用模块之前,必须先导入指定模块,只要导入了一个模块,才能使用一个模块。
如何导入pi(3.1415926)
>>> import math
>>> math.pi
3.141592653589793
三、sys 模块
在Python 中有一些模块是不用我们自己去定义,Python 官方提供的自带的模块,这些模块伴随的Python 的安装而产生,我们把这些模块叫做标准库模块。标准库模块是一类模块,而不是特指某一模块。标准库模块中,也有非常多的模块,有的模块与电子邮件有关,有的模块与操作系统相关,还有的模块与系统功能有关,等等。我们把在标准库中与系统功能有关的这些模块称之为 sys 模块。
>>> import sys
>>> sys.version # 查看系统信息
'2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)]'
>>> sys.executable # 查看当前执行文件的目录
'C:\\Python27\\pythonw.exe'
>>> sys.getwindowsversion() # 查看windows 的相关信息
sys.getwindowsversion(major=6, minor=1, build=7601,
platform=2, service_pack='Service Pack 1')
>>> sys.modules.keys() # 查看模块关键字
2、字节编译
知识点:
什么是Python 的 .pyc 文件
字节编译与编译的区别
.pyc 的产生
.pyc 的使用
一、什么是Python 的 .pyc 文件?
首先,我们所说的 .pyc 文件是指以 .pyc 为后缀名的这一类文件。我们知道,由于我们计算机只认识二进制的机器语言,所以在执行Python 模块的时候,有两种执行方式:一种是先将模块里面的内容编译成二进制语言,然后执行这些二进制语言;另一种是直接执行对应模块的二进制语言程序。第二种方式省略了编译这一步,所以执行速度相对来说要快一些。而把模块编译成二进制语言程序的这个过程叫做字节编译,这个过程会产生一个与编译模块对应的 .pyc 文件。.pyc 文件就是经过编译后的模块对应的二进制文件。
二、字节编译与编译的区别
把模块编译成二进制语言程序的这个过程叫做字节编译。Python是一种解释型语言,而不是一种编译型语言。很多人认为,Python 中出现字节编译,那么Python 就应该是一种编译型语言。其实这种观点是不正确的。Python 中虽然出现了编译这个过程,但是Python 中编译的过程是在Python 的解释器中发生的。话句话来说,其实每种程序要想让计算机执行,都只能变成二进制的形式,编译型语言是指在软件中就有一个独立的编译模块去将程序编译,而Python 中字节编译这部分功能是由解释器完成的,所以Python 仍然是解释语言。
三、.pyc 文件的产生
字节编译这个过程会产生一个与编译的模块对应的 .pyc 文件。.pyc文件就是经过编译后的模块对应的二进制文件。该模块如果有 .pyc文件就直接执行,没有执行一下则会编译该文件,生成 .pyc 文件。
编译有两种方法:
第一种:import 该模块
第二种:cmd 命令行
四、.pyc 文件的使用
在Python 中,.pyc 文件最大的一个作用就是加快了模块的运行速度。那么 .pyc 文件具体来说有什么用呢?如果我们深入学习下去,我们就会知道 .pyc 文件今后还可以做反编译等等高级功能。
二进制文件查看器:Binary Viewer
3、from … import 详解
知识点:
学会使用 from … import
学会使用 from … import *
一、学会使用 from … import 文件
Python 中导入一个模块的方法我们可以使用 import,但是import 只是导入了这个模块,而并没有导入我们模块的某个属性或方法。而我们要不仅导入一个模块,还有导入模块中对应的一个功能,我们可以使用from … import 语句。
>>> from sys import version
>>> version
'2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)]'
二、学会使用 from … import *
在Python 中使用from … import 语句只能一次导入一个模块的一个功能,我们如果要想一次性把这个模块的所有功能,也就是所有属性与方法都导入的话,我们可以使用from … import * 语句。
>>> from sys import *
>>> executable
'C:\\Python27\\pythonw.exe'
4、认识 name 属性
知识点:
认识主模块
认识 __name__
属性
对于__name__
属性的使用
一、认识主模块
我们Python 函数中,如果一个函数调用其他函数完成一项功能,我们称这个函数为主函数,如果一个函数没有调用其他函数,我们这种函数叫做非主函数。模块也是一样的,如果一个模块是直接使用的,而没有被别人调用,我们称这个模块为主模块;如果一个模块被别人调用,我们称这种模块叫做非主模块。
二、认识 name 属性
在Python 中有主模块与非主模块之分,那么如何区分主模块与非主模块?如果一个模块的 name 属性的值时 main ,那么久说明这个模块是猪模块,反之亦然。其实我们可以把 name 看做一个变量,这个变量是系统给出的,这个变量的功能是判断一个模块是否是主模块。
if __name__ == '__main__':
print "It is main"
else:
print "It is not main"
>>>
It is main
>>> import numpy # numpy是非主模块
5、自定义模块
知识点:
什么是自定义模块
自定义模块使用详解
一、什么是自定义模块
Python 中模块有非常多,有的模块是不需要用户自己去定义的去编写的,Python在安装的时候就自带的模块,这些模块是系统自带模块。而有一些模块刚好跟这种模块不同,它是需要我们自己去定义,自己去编写的模块,这些模块我们把其称之为自定义模块。
二、自定义模块使用详解
第一种方法:在 Python27/Lib 下建立 .py 文件,该文件就成为自定义模块。
第二种方法:用IDLE保存文件在Python27/Lib 下
# 从模块外传入参数
# test_add.py
i = 0 # 初始化I, j 是防止 import test_add 出错
j = 0
def add(i, j):
k = i + j
return k
k = add(i,j)
print k
>>> import test_add
0
>>> i =6
>>> j = 7
>>> test_add.add (i, j)
13
又或者改成这样
int i
int j
def add(i, j):
k = i + j
return k
k = add(i,j)
print k
>>> import test_add
>>> test_add.add(4, 5)
9
6、dir() 函数
知识点:
认识dir() 函数
dir() 函数扩展详解
一、认识dir() 函数
Python 中有非常多的模块,但是有时候我们会忘记一个模块有哪些功能。这个时候,我们可以用dir() 函数来查看一下指定模块的功能列表。
>>> import sys
>>> dir(sys)
>>> sys.__doc__
>>>sys.platform
'win32'
二、dir() 函数扩展详解
Python 中dir() 函数不仅仅能查看模块的功能列表,还能查看任意指定对象的功能列表。
- 两者返回内容相同
- dir() 函数查看的仅仅是属性的列表,而不携带数据
- dir() 也可以返回字符串、元组等属性列表