python

5-Python 模块

2016-03-17  本文已影响172人  LuCh1Monster

课程概要:
  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() 函数不仅仅能查看模块的功能列表,还能查看任意指定对象的功能列表。

上一篇 下一篇

猜你喜欢

热点阅读