作者:jofranks原创作品,转载请标明出处!版权所有,侵权必究!
在这里我们要先看两个概念:模块和导入
当代吗数量非常大的时候,我们可以把代码分成一些有组织的代码段,前提是保证他们的彼此交互。这些代码片段相互间有一定的联系。这些代码段是共享的,python允许调入一个模块,允许使用其他模块的属性来利用之前的工作成果,实现代码重用! 这个把其他模块中属性附加到自己模块中的操作就是导入(import)。
而那些自我包含并且有组织的代码片段就是模块(module)~!
模块的导入需要一个叫做“路径搜索”的过程。就是在文件系统“预定义区域”中查找文件!
路径搜索:指查找某个文件的操作!
搜索路径:去查找一组目录!(在不同系统下一般是不同的!)
模块导入:
1、import
import module1
import module2
。。。。
也可以import module1[, module2[, ...moduleN]]一般情况下,我们很少用第二种方法!
在python中,我们的导入顺序最好是:
(1)、python标准库模块
(2)、python第三方模块
(3)、应用程序自定义模块
2、from-import语句
你可以在你的模块中导入指定的模块属性!from module import name1[, name2[, ...nameN]]
我们也可以用from-import实现多行导入!!
如:
from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text, LEFT, DISABLED, NORMAL, RIDGE, END)
我们在编程的时候应该使用上面的语句来创建合理的多行导入,
不要使用下面的方式:
from Tkinter import *
3、扩展的import语句
有时候你导入的模块或是模块属性名称已经在你的程序中使用了,或者你不想使用导入的名字! 我们要使用自己想要的名字替换模块的原始名称。 ---一个方案:把模块复制给一个变量!
import longmodulename
short = longmodulename
del longmodulename
现在我们使用扩展的import就可以在导入的同时制定局部绑定名称!
如:import Tkinter
from cgi import FieldStorage上面的代码可以替换为:
import Tkinter as tk
from cgi import FieldStorage as form
包:
包是一个有层次的文件目录结构!他定义了一个由模块和子包组成的python应用程序执行环境。
她也使用句点属性标识来访问他们的属性,使用import和from import语句导入包中的模块!
1、目录结构
Phone/
_init_.py
Voicedta/
a.py
Fx/
d.py
g/
f.py
如上面的目录结构:我么可以这样导入包:
import Phone.Fx.d
你也可以这样:
from Phone import Fx
Fx.d.dx()
或者:
from Phone.Fx import d
或者你可以按照这样的方式一直沿子包的树状结构导入
2、使用from-import导入包
(1)、绝对导入
import语句总是绝对导入!
(2)、相对导入
相对导入只用于from-import语句!
-----2012/7/30
-----jofranks 于南昌