python 入门笔记 (模块)

一、模块基础

1、模块

自我包含,且有组织的代码片段就是模块

模块是Pyhon最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。实际的角度,模块往往对应Python程序文件。
每个文件都是一个模块,并且模块导入其他模块之后就可以使用导入模块定义的变量名。模块可以由两个语句和一个重要的内置函数进行处理。
import: 使客户端(导入者)以一个整体获取一个模块。
from:容许客户端从一个模块文件中获取特定的变量名。
reload:在不中止Python程序的情况下,提供了一个重新载入模块文件代码的方法。

参考:http://ipseek.blog.51cto.com/1041109/795782

2、名称空间

一个名称空间就是从名称到对象的关系隐射集合。

每一个模块都定义的自己唯一的名称空间,如:

import s1,s2#s1.py,s2.pys1.foo()
s2.bar()
s1.bar()    #由于每个模块都有唯一的名称空间,即使属性相同也不会发生冲突

向名称空间添加名称的操作过程涉及绑定标识符到指定对象的操作(以及给对象的引用计数加1)。

3、搜索路径和路径搜索

模块的导入需要叫做“路径搜索”的过程。

搜索路径:查找一组目录

路径搜索:查找某个文件的操作

ImportError: No module named myModule

这种错误就是说:模块不在搜索路径里,从而导致路径搜索失败!

导入模块时,不带模块的后缀名,比如.py
Python搜索模块的路径:
1)、程序的主目录
2)、PTYHONPATH目录(如果已经进行了设置)
3)、标准连接库目录(一般在/usr/local/lib/python2.X/)
4)、任何的.pth文件的内容(如果存在的话).新功能,允许用户把有效果的目录添加到模块搜索路径中去
.pth后缀的文本文件中一行一行的地列出目录。
这四个组建组合起来就变成了sys.path了,

>>> import sys>>> sys.path
导入时,Python会自动由左到右搜索这个列表中每个目录。

二、模块导入

1、import语句

推荐:

import放在程序前面,且按照Python标准库模块、Python第三方模块、自定义模块的顺序从上到下排开。

2、from-import语句

可以导入模块中指定属性:from module import name1[,nam2[,...nameN]]

注意:

(1)、导入可使用\进行换行,

如:from module import nam1,name2,\
name3,name4....

(2)、不推荐from module import *

(3)、使用as更换名称:

from module import name1 as name2

3、模块导入的特征

(1)、载入时执行模块,也就是导入模块的顶层代码将会被执行,通常包括该模块内全局变量类和函数的声明。我们尽可能多的把代码封装到函数中,这是良好的模块编程习惯。

(2)、一个模块可被导入(import)多次,但是只加载(load)一次.

4、模块内建函数

(1)、__import__():导入模块的函数

import语句实际上调用__import__()函数

如果我们有一个testa.py文件,我们可以用module=__import__(‘testa‘)来导入它。这样可以用module.属性来使用testa.py中的属性

其他见书

三、包

 1、包的概念

包是一个有层次的文件目录结构,由模块和子包组成。

2、解析包机制:

每一个.py文件称为一个module,module之间可以互相导入

module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个module a.py . 如何让Python知道这个文件层次结构?很简单,每个目录都放一个名为_init

_.py 的文件.该文件内容可以为空.这个层次结构同上:

参考:http://huangliangfeixu.blog.163.com/blog/static/18974706220112741040442/

3、python中__init__.py文件的作用

python的每个模块的包中,都有一个__init__.py文件,有了这个文件,我们才能导入这个目录下的module。
那么,__init__.py还有什么别的功能呢?
其实,__init__.py里面还是可以有内容的,我们在导入一个包时,实际上导入了它的__init__.py文件。

点击继续阅读:

4、导入

参考上面的图片

import web.web_catchimport web.child_web.demofrom web.child_web import demo
时间: 2024-10-07 00:31:10

python 入门笔记 (模块)的相关文章

Python 入门笔记

#安装 1.进入Eclipse, Help->Install New Software,点击Add按钮:Name: PyDev(随意) Location: http://pydev.org/updates 2.选择PyDev下的PyDev for Eclipse,别的都不要选,否则依赖检查那关过不去.按步骤安装即可.重启Eclipse. 3.配置PyDev插件Window->Preference: PyDev->Interpreter - Python,New一个Python解释器,填上

Python学习笔记-模块

模块: 顶层文件(也是模块文件) 模块文件 模块在物理形式上表现为.py结尾的代码文件 Python中,模块本身也是对象,所以模块也有变量,函数,类 在一个模块的顶层定义的所有变量都在被导入时成为了被导入模块的属性 查看标准库模块: help('modules') 顶层文件:包含了程序的主要控制流程 模块文件:为顶层文件或其他模块提供各种功能组件 import module [,module1[,module2]]语句    导入模块 导入指定的整个模块,包括生成一个以模块名命名的名称空间 导入

Python学习笔记-模块介绍(三)-模块包和搜索路径

一个python文件就是一个模块,使用独立的命名空间,但实际使用过程中单单用模块来定义python功能显然还不够.因为一个大型的系统几千上万个模块是很正常的事情,如果都聚集在一起显然不好管理并且有命名冲突的可能,因此python中也出现了一个包的概念. 一.python中的包介绍 包是通过使用"点模块名称"创建Python模块命名空间的一种方法.列如,模块名称 A.B 表示一个在名为 A的包下的名为B的子模块.就像使用模块让不同模块的作者无需担心彼此全局变量名称(冲突)一样,点模块名称

python入门:常用模块—模块,包介绍

一.什么是模块 为了编写可维护的代码,把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,编程语言采用这种组织方式.在python中,一个.py文件就称之为一个模块. 二.使用模块有什么好处 最大的好处是大大提高了代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.经常引用其他模块,包括Python内置的模块和来自第三方的模块 使用模块还可以避免函数名和变量名冲突.每个模块有独立的命名空间 三.模块分类 内置标准模块(又称标准库)执行hel

python入门学习--模块

1.模块 可以把模块想象成导入到python以增强其功能的扩展.需要使用特殊的命令import来导入模块.用import导入了模块,然后按照"模块.函数"的格式使用这个模块的函数, 它是这样起作用的. 上图为把年龄转换为整数(32)而不是浮点数(32.0),使用int函数.注:int函数/类型把参数转换成整数是会自动向下取整,所以在转换过程中,math.floor是多余的, 可以直接使用函数int(32.9). 1.1 cmath和复数 虚数用模块cmath(即complex math

python 入门学习---模块导入三种方式及中文注释

Python 有三种模块导入函数 1. 使用import 导入模块 import modname : 模块是指一个可以交互使用,或者从另一Python 程序访问的代码段.只要导入了一个模块,就可以引用它的任何公共的函数.类或属性.模块可以通过这种方法来使用其它模块的功能.用import语句导入模块,就在当前的名称空间(namespace)建立了一个到该模块的引用.这种引用必须使用全称,也就是说,当使用在被导入模块中定义的函数时,必须包含模块的名字.所以不能只使用 funcname,而应该使用 m

python 入门学习---模块导入三种方式及中文凝视

Python 有三种模块导入函数 1. 使用import 导入模块 import modname : 模块是指一个能够交互使用,或者从还有一Python 程序訪问的代码段.仅仅要导入了一个模块,就能够引用它的不论什么公共的函数.类或属性.模块能够通过这样的方法来使用其他模块的功能.用import语句导入模块.就在当前的名称空间(namespace)建立了一个到该模块的引用.这样的引用必须使用全称,也就是说,当使用在被导入模块中定义的函数时,必须包括模块的名字.所以不能仅仅使用 funcname,

Python学习笔记-模块介绍(一)-模块概念和基本使用

python是由一系列的模块组成的,每个模块就是一个py为后缀的文件,同时模块也是一个命名空间,从而避免了变量名称冲突的问题.模块我们就可以理解为lib库,如果需要使用某个模块中的函数或对象,则要导入这个模块才可以使用,除了系统默认的模块不需要导入外.导入直接使用如下语法: import 模块名称(不要.py后缀) 这样导入成功后,就可以在另外一个模块中使用被导入模块的功能函数或对象了.先举例如下,比如在D:\temp目录下建立python模块:module_1.py,内容如下: # -*- c

Python学习笔记-模块介绍(二)-模块导入和执行

之前的一篇博文介绍了python中模块的概念和基本使用方法,模块作为python语言中的基本单元,可以用来编写公用库函数或对象以便重复使用.同时模块还可以作为独立文件进行运行,之前也已经提到,只要是导入了模块文件,那么PVM就会依次执行模块文件中的所有语句.本篇主要介绍模块使用的一些进阶,首先定义一个模块module_2.py,内容如下: # -*- encoding:utf-8 -*-'''module_2.py模块的内容''' print(__name__) def sum(a,b):ret