木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java5年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql5年进入店铺

【python学习】之三、模块

作者:jofranks 原创作品,转载请标明出处!版权所有,侵权必究!

来源:http://blog.csdn.net/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 于南昌

posted @ 2012-07-30 13:08  程序流程图  阅读(1133)  评论(0)    收藏  举报
木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java5年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql5年进入店铺