python 教程 第六章、 模块

第六章、 模块

1) 模块

sys模块

字节编译的.pyc文件,优化编译后生成pyo文件

2) from..import语句

import sys 
print 'The command line arguments are:' 
for i in sys.argv: 
    print i 
print '\n\nThe PYTHONPATH is', sys.path, '\n' 

3) __name__

只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块

from sys import * 
print 'The command line arguments are:' 
for i in argv: 
    print i 
print '\n\nThe PYTHONPATH is', path, '\n'

4) 制造自己的模块

#!/usr/bin/python 
# Filename: mymodule.py 
def sayhi(): 
    print 'Hi, this is mymodule speaking.' 
version = '0.1' 
# End of mymodule.py 
#!/usr/bin/python 
# Filename: mymodule_demo.py 
import mymodule 
mymodule.sayhi() 
print 'Version', mymodule.version 

5) reload模块重载

>>> import changer    #导入模块changer.py文件 
>>> changer.printer() # No effect: uses loaded module 
First version

##修改changer.py的代码##

>>> from imp import reload 
>>> reload(changer)   # Forces new code to load/run 
<module 'changer' from 'changer.py'> 
>>> changer.printer() # Runs the new version now 
reloaded: After editing

6) dir()函数

列出模块定义的标识符。标识符有函数、类和变量。

>>> import sys 
>>> dir(sys) 
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright'…] 
>>> 

如果不提供参数,它返回当前模块中定义的名称列表。

>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__', 'sys'] 
>>> a = 1 
>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__', 'a', 'sys'] 
>>> del a 
>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__', 'sys'] 
>>> 

列出数据类型的可使用的函数,help函数的简体版

>>> dir(dict) 
['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']

7) 包导入

import dir1.dir2.mod #from dir1.dir2.mod import x

dir1在PYTHONPATH路径中

dir1目录/dir2目录/mod.py文件

dir1目录和dir2目录下都必须含有__init__.py

8) 修改模块搜索路径

sys.path.append('c:\\lp4e\\examples')
posted @ 2011-10-13 11:21  方倍工作室  阅读(406)  评论(0编辑  收藏  举报