美文网首页python
5-Python 模块

5-Python 模块

作者: LuCh1Monster | 来源:发表于2016-03-17 17:24 被阅读172次

课程概要:
  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() 也可以返回字符串、元组等属性列表

相关文章

  • 5-Python 模块

    课程概要:1、认识Python 模块2、字节编译3、from … import 详解4、认识 name 属性5、自...

  • 5-Python列表

    Python中没有数组,list是一种有序的集合,可以随时添加和删除其中的元素。可以添加不同类型的数据。列表元组用...

  • 5-python中reduce()函数

    reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数...

  • Python系列5-Python字典介绍

    一.字典介绍 在Python中,字典 是一系列键—值对 。每个键 都与一个值相关联,你可以使用键来访问与之相关联的...

  • 5-python库之-paho mqtt通讯

    mqtt可以说是显示物联网上面应用十分广泛的协议了,其轻量、简单、开放和易于实现等这些特点。paho也实现了pyt...

  • Python work 5-python 大大的教学课

    今天继续学习函数,对应书的第8章节。 第一章是大大的图,今日的任务是建立一个列表,熟悉len和range函数的用法...

  • python常用模块!!

    os模块: stat模块: sys模块: hashlib,md5模块: random模块: types模块: at...

  • 2018-08-19

    Angular 2 技能图谱 模块 自定义模块 根模块 特性模块 共享模块 核心模块 内置模块 Applicati...

  • 【时间管理100讲】精髓全在这里啦

    理论模块 精力管理。 行动管理。 学习模块。 高空模块。 反思模块。 运动模块。 阅读模块。 旅行模块。 人际关系...

  • python基础学习(三)

    常用模块 String模块 数学模块 随机模块 OS模块 os.path模块 re模块 常用函数及操作 列表操作 ...

网友评论

    本文标题:5-Python 模块

    本文链接:https://www.haomeiwen.com/subject/sreclttx.html