python 入门笔记 (模块)

1、模块基础html

一、模块python

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

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

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

二、名称空间spa

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

每个模块都定义的本身惟一的名称空间,如:orm

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

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

三、搜索路径和路径搜索对象

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

搜索路径:查找一组目录

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

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会自动由左到右搜索这个列表中每一个目录。

 

2、模块导入

一、import语句

推荐:

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

二、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

三、模块导入的特征

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

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

四、模块内建函数

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

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

若是咱们有一个testa.py文件,咱们能够用module=__import__('testa')来导入它。这样能够用module.属性来使用testa.py中的属性

其余见书

3、包

 一、包的概念

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

二、解析包机制:

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

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

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

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

 

三、python中__init__.py文件的做用

 

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

点击继续阅读:

 

四、导入

 

参考上面的图片

 

import web.web_catchimport web.child_web.demofrom web.child_web import demo
相关文章
相关标签/搜索