python 教程 第六章、 模組

方倍工作室發表於2013-07-23

第六章、 模組

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')

相關文章