遞歸列出目錄裏的文件、匿名函數
#!/usr/bin/python
import os
import sys
def print_file(path):
lidir=os.listdir(path)
dirs=[i for i in lidir if os.path.isdir(os.path.join(path,i))]
files=[i for i in lidir if os.path.isfile(os.path.join(path,i))]
if files:
for i in files:
print os.path.join(path,i)
if dirs:
for j in dirs:
print_file(os.path.join(path,j))
print_file(sys.argv[1])
匿名函數
匿名函數就是沒有函數名的函數,即 lambda 函數,lambda 函數是一種快速定義單行的最小函數,可以用在任何需要函數的地方,lambda 可以省去定義函數的過程,讓代碼更加精簡,而且使用 lambda 在某些時候讓代碼更容易理解,對於一些抽象的,不會被別的地方再重復使用的函數,有時候函數起個名字也是個難題,使用 lambda 不需要考慮命名的問題
傳統的函數:
In [66]: def add(x,y):
...: return x + y
...:
In [67]: add(3,4)
Out[67]: 7
匿名函數:
In [68]: r=lambda x,y:x+y # lambda 語句中,冒號前是參數,可以有多個,用逗號隔開,冒號右邊是返回值,lambda 語句構建的其實是一個函數對象
In [69]: r(4,5)
Out[69]: 9
遞歸列出目錄裏的文件、匿名函數