php開發中,咱們定義好了一個公用函數,則會將代碼放在公用的文件中,須要用到的時候,使用require或者include函數包含這個公用的文件,便可在程序中實現可重用。接下來看看python中如何操做 php
系統環境:window xp sp3,python2.7 python
在D盤pydemo目錄下建立一個nester目錄(此目錄爲舉例說明,屬自定義) windows
在目錄中添加兩個python程序文件:nester.py和setup.py 數組
nester.py 模塊的程序文件,代碼以下(實現遞歸遍歷數組): python2.7
def print_lol(arr): for row in arr: if(isinstance(row , list)): print_lol(row) else: print row
setup.py 保存模塊的安裝信息,包含模塊名稱,模塊開發者等信息,代碼以下: 函數
from distutils.core import setup setup ( name = 'nester', version = '1.0.1', py_modules = ['nester'], author = 'ken.wong', author_email = '279639439@qq.com', description = 'Module demo', )注意:
name和py_modules這兩個參數必定要與nester.py文件名相同,不然發佈安裝時會發出模塊文件找不到的錯誤 ui
經過命令行,進入nester目錄(D:/pydemo/nester),依次輸入下圖中紅色框的命令 spa
發佈模塊,但還不能在程序中被調用,還須要安裝,接着看 命令行
See,安裝完成,在python環境下產生一個nester-1.0.1-py2.7.egg-info文件,有點相似php擴展的.dll(windows環境下的) code
如今能夠在程序中使用剛纔安裝的nester模塊
import nester movies = ['a','b',['c1','c2']] nester.print_lol(movies)這裏須要注意一個問題,不少新手會這樣調用:
print_lol(movies)系統會發出這樣的一個錯誤信息:NameError: name 'print_lol' is not defined
緣由是當模塊建立之後,系統自動建立一個與模塊名稱相同的命名空間(nester),並將函數放在命名空間中,簡單的經過print_lol調用,天然沒法找到函數,正確的方法:
nester.print_lol(movies)直接把命名空間帶上便可。