python理解-模块

概述

模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。

模块导入时,模块文件的全局作用域变成了模块对象的对象的命名空间。

import

与include完全不同,执行步骤:

1.找到模块文件;

2.编译成位码;

3.执行模块的代码来创建其所定义的对象;

注:模块的import完全不同于C中的#include,并非简单的插入另一个文件。import除了搜索到模块文件外,还会将模块编译,并执行模块的代码,创建其所定义的对象(变量,函数,类)。

from

from会把变量名复制到另一个作用域,可在脚本中直接使用变量名,而不需要通过模块。

import和from都是隐形的赋值语句,可以嵌套在代码语句中:

1.import将整个模块对象赋值给另一个变量名;

2.from将一个或多个变量名赋值给另一个模块中同名的对象;

from语句潜在的陷阱:

1.有破坏命名空间的潜质,如果重名,会覆盖同名变量;

2.和reload同时使用时,导入的变量名可能仍引用之前的对象;

reload

reload是python中的内置函数,而不是语句;

传给reload的是已经存在的模块对象,而不是变量名;

reload会在适当的地方修改模块对象,并不会删除并重建对象。因此,程序中任何引用该模块对象的地方,自动会受到reload的影响。

包导入

使用相对路径做包导入

posted @ 2012-02-27 13:04  John Lee  阅读(265)  评论(0)    收藏  举报