您的位置:首页 > 编程语言 > Python开发

Python入门学习笔记之Python模块

2015-07-23 20:53 731 查看
Python模块:

一、认识Python模块

1.什么是模块

函数是可以实现一项或多项功能的一段程序。我们的模块是函数功能的扩展,模块是可以实现一项或多项功能的程序块。从定义可以看出:函数是一段程序,模块是一项程序块,也就是说函数,模块都是用来实现功能的,但是模块范围要广,在模块里可以重用多个函数

2.如何导入模块

在Python程序中如果要使用某个模块,不能直接使用某个模块的功能。在模块使用之前,我们需要先导入指定模块,只要导入模块后我们才能使用

import math

math.pi

3.141592653589793

3.sys系统自带模块

在Python中有一些模块是不用我们去定义的,Python官方提供的自带的模块。这些模块伴随这Python的安装而产生,我们把这些模块叫做标准库模块。标准库模块是一类模块,而不是一种模块,在标准库模块中,也有非常多的模块,有的模块和电子邮件相关,有的和操作系统相关,还有的和系统功能相关,我们把标准库中和系统相关的这些模块称为sys模块

实例:

import sys

sys.version

‘2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]’

sys.executable

‘D:\Python27\Python279\pythonw.exe’#当前运行文件的位置

sys.getwindowsversion()

sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack=’Service Pack 1’)#返回当前windows系统信息

sys.modules.keys()#查看已经导入的模块关键字

二、字节编译

1.何为Python的.pyc文件

我们所说的.pyc文件是以.pyc为后缀名的这一类文件。我们知道,由于我们计算机只认识二进制的机器语言,所以我们在执行Python模块的时候,有两种执行方式:一种是将模块的内容编译成二进制语言,然后执行这些二进制语言,另一种是执行对应模块里面的二进制语言程序。第二种方式省略了编译这一步,所以执行速度相对来说要快一些。而把模块编译成二进制语言程序的这个过程叫做字节编译,这个过程会产生一个与编译的模块对应的.pyc文件,所以说.pyc文件就是经过编译后的模块对应的二进制文件

2.字节编译和编译的区别

字节编译:把模块编译成二进制语言程序的这个过程

Python是一种解释型语言,not编译型语言,所以有人会说怎么来的字节编译,其实Python中虽然出现了编译这个过程,但是它和其他的编译型语言不同的是,它的编译是由解释器完成的,毕竟每个程序想要执行都需要变成二进制的形式,编译型语言是指软件中有一个独立的编译模块去将程序编译,而Python没有,它有解释器

3..pyc文件的产生

字节编译过程中会产生一个与编译的模块对应的.pyc文件,即.pyc文件就是经过编译后模块对应的二进制文件。

有两种.pyc产生的方式:

第一种:import

import zipfile

第二种:CMD命令行

通过输入:cd: d:\Python27\Lib进入到lib文件行,然后输入:python -m compileall xmllib.py

4..pyc文件的使用

在Python中,.pyc文件最大的一个作用就是加快了模块的运行速度(可以直接运行.pyc文件,不需要编译)。其实.pyc还有反编译等高级功能

反编译:把二进制文件还原成源文件

三、From…import详解

1.Python中阴道一个模块的方法就是使用import,但是import只是导入了这个模块,而并没有导入我们模块的某个属性和方法,而我们不仅要导入一个模块,还要导入模块中对应的一个功能,我们可以使用From…import语句

实例:

import sys

sys.version

‘2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]’

version

Traceback (most recent call last):

File “

实例:

executable

Traceback (most recent call last):

File “

首先我们分别看一下这个模块在不同场景中的name的值

print name

输出结果:

main#主模块

区分是否主模块,就看自己调用还是被别人调用

3.name属性的使用

在Python中有主模块和非主模块之分,那么如何区分主模块和非主模块呢,如果一个模块的name属性值是main,那么说明这个模块是主模块,反之不是,其实我们可以把name看作一个变量,这个变量由sye系统给出,用于判断一个模块是否是主模块

实例

其次我们看一下name属性的常用情况,用来判断是不是自己执行,还是被调用

‘‘coding=utf-8’’

用来防止编码错误

if name==”main“:#两个下划线

print “It’s main”

else:

print “It’s not main”

输出结果:

import lname_

It’s not main

五、自定义模块

1.何为自定义模块

Python中有许多模块,有的模块是不需要用户自己去定义的去编写的,Python在安装的时候就自带的模块,这些模块是系统自带模块。而有一些模块刚好跟这种模块不同,它是需要我们自己去定义去编写的模块,称之为自定义模块

2.自定义模块使用详解

(1).只要将自己编写的Python程序(.py)保存到Lib目录下就可以了

(2).编写代码

Ctrl+s保存然后保存到Lib就可以了

实例:

创建程序,定义函数:

def add(i,j):

k=i+j

return k

k=add(i,j)

print k

难点:参数传递,把参数传递到i,j

在函数之前加入初始化值:

i=0

j=0

def add(i,j):

k=i+j

return k

k=add(i,j)

print k

这样语法和逻辑就不会出现错误

Crtl+s

然后开始传递参数:

import add

0

i=6

j=7

add.add (i,j)

13

或者在函数前先进行声明后再保存:

int i

in j

def add(i,j):

k=i+j

return k

k=add(i,j)

print k

输出结果:

import add

i=6

j=7

add.add (i,j)

13

六、dir函数

1.认识dir()函数

Python中有非常多的模块,但是有时候我们会忘记一个模块有哪些功能,这时候,我们可以通过dir()函数来查看下指定模块的功能列表

查看sys模块:

import sys #先导入

dir(sys) #再查看

[‘displayhook‘, ‘doc‘, ‘excepthook‘, ‘name‘, ‘package‘, ‘stderr‘, ‘stdin‘, ‘stdout‘, ‘_clear_type_cache’, ‘_current_frames’, ‘_getframe’, ‘_mercurial’, ‘api_version’, ‘argv’, ‘builtin_module_names’, ‘byteorder’, ‘call_tracing’, ‘callstats’, ‘copyright’, ‘displayhook’, ‘dllhandle’, ‘dont_write_bytecode’, ‘exc_clear’, ‘exc_info’, ‘exc_traceback’, ‘exc_type’, ‘exc_value’, ‘excepthook’, ‘exec_prefix’, ‘executable’, ‘exit’, ‘flags’, ‘float_info’, ‘float_repr_style’, ‘getcheckinterval’, ‘getdefaultencoding’, ‘getfilesystemencoding’, ‘getprofile’, ‘getrecursionlimit’, ‘getrefcount’, ‘getsizeof’, ‘gettrace’, ‘getwindowsversion’, ‘hexversion’, ‘long_info’, ‘maxint’, ‘maxsize’, ‘maxunicode’, ‘meta_path’, ‘modules’, ‘path’, ‘path_hooks’, ‘path_importer_cache’, ‘platform’, ‘prefix’, ‘py3kwarning’, ‘setcheckinterval’, ‘setprofile’, ‘setrecursionlimit’, ‘settrace’, ‘stderr’, ‘stdin’, ‘stdout’, ‘subversion’, ‘version’, ‘version_info’, ‘warnoptions’, ‘winver’]

sys.doc#可以进行查看

2.dir函数扩展详解

实例:

d=[]

dir(d)

[‘add‘, ‘class‘, ‘contains‘, ‘delattr‘, ‘delitem‘, ‘delslice‘, ‘doc‘, ‘eq‘, ‘format‘, ‘ge‘, ‘getattribute‘, ‘getitem‘, ‘getslice‘, ‘gt‘, ‘hash‘, ‘iadd‘, ‘imul‘, ‘init‘, ‘iter‘, ‘le‘, ‘len‘, ‘lt‘, ‘mul‘, ‘ne‘, ‘new‘, ‘reduce‘, ‘reduce_ex‘, ‘repr‘, ‘reversed‘, ‘rmul‘, ‘setattr‘, ‘setitem‘, ‘setslice‘, ‘sizeof‘, ‘str‘, ‘subclasshook‘, ‘append’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]

c=[‘a’,’b’]

dir(c)

[‘add‘, ‘class‘, ‘contains‘, ‘delattr‘, ‘delitem‘, ‘delslice‘, ‘doc‘, ‘eq‘, ‘format‘, ‘ge‘, ‘getattribute‘, ‘getitem‘, ‘getslice‘, ‘gt‘, ‘hash‘, ‘iadd‘, ‘imul‘, ‘init‘, ‘iter‘, ‘le‘, ‘len‘, ‘lt‘, ‘mul‘, ‘ne‘, ‘new‘, ‘reduce‘, ‘reduce_ex‘, ‘repr‘, ‘reversed‘, ‘rmul‘, ‘setattr‘, ‘setitem‘, ‘setslice‘, ‘sizeof‘, ‘str‘, ‘subclasshook‘, ‘append’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]

返回值一样,dir返回的只有属性,不区分数据

e=()

dir(e)

[‘add‘, ‘class‘, ‘contains‘, ‘delattr‘, ‘doc‘, ‘eq‘, ‘format‘, ‘ge‘, ‘getattribute‘, ‘getitem‘, ‘getnewargs‘, ‘getslice‘, ‘gt‘, ‘hash‘, ‘init‘, ‘iter‘, ‘le‘, ‘len‘, ‘lt‘, ‘mul‘, ‘ne‘, ‘new‘, ‘reduce‘, ‘reduce_ex‘, ‘repr‘, ‘rmul‘, ‘setattr‘, ‘sizeof‘, ‘str‘, ‘subclasshook‘, ‘count’, ‘index’]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 程序 模块