Python的模块
Python的模块是一种代码的组织方式,用户可以将它和别的语言的类库相比,在Python中,程序的运行都是以模块为结构进行的。模块有两种运行方式,一是作为文件被载入,二是在解释器中以命令行的方式运行,实际上,当我们运行解释器的时候,就是在运行一个名为__main__的模块。这就是为什么当我们运行解释器后键入dir()会出现下列语句的原因:
['__builtins__', '__doc__', '__name__', 'pywin', 'sys']
它就是__main__模块的内置属性和默认导入的模块。
下面写一个最简单的py脚本文件jbttm.py:
email='chiangbt@gmail.com'
然后将这个文件保存在f盘中(其实可以保存在任何地方)。
当我们导入别的系统安装的模块时,用的方法是非常简单的,如import string就可以,自然,这个string模块是放在系统路径中的,这个路径也是我们在安装python时系统认定的,因此模块导入才可以自动找到路径实现。我们可以键入sys.path:
['', 'c:\\python21\\pythonwin', 'c:\\python21\\win32', 'c:\\python21\\win32\\lib', 'c:\\python21', 'c:\\python21\\dlls', 'c:\\python21\\lib', 'c:\\python21\\lib\\plat-win', 'c:\\python21\\lib\\lib-tk'']
这就是系统默认的模块文件夹,放在这些文件夹中的模块可以直接导入,但我们将jbttm.py文件放在f盘中,自然是不会自动导入的,这个时候可以将f盘作为一个默认路径,其方法如下:
>>> sys.path.append('f:\\')
引入模块的时候有两种方法:
>>>import jbttm
>>>print jbttm.name
或
>>>from jbttm import *
>>>print name
不过第二种方法并不太好,如果两个引入的模块都有相同的属性或函数时,这样就会出现冲突。
当模块代码第一次被导入的时候,解释器会将模块编译为字节码保存在内存中,如果我们将jbttm.py文件中的name属性改变,再运行代码print name,可以看到结果与以前一致。我们再使用import将模块导入,然后再print name一次,结果还是一样,两次的输出结果根本没有变化。如何让程序能够输出新的结果呢,使用一下代码:
reload(jbttm)
然后运行print jbttm,name,可以看到输出结果是更改后的了。
Related Items
Comments
Leave a comment
Or, take a look at Archives and Categories