1.Python 程序的結構
Python程序由package、module和function組成。
package是由一系列模塊組成的集合,module是處理某一類問題的集合。、
package必須至少含有一個 init.py 文件,該文件內容可以爲空,用於標識當前文件夾是一個包。
2.module
- Python程序由一個個的模塊組成的,一個python文件就是一個模塊。
- 當python導入一個module時,首先查找當前路徑,然後查找lib目錄、site-packages目錄和環境變量PYTHONPATH設置的目錄。
- 模塊的導入:
import module_name
from module_name import fuction_name
from module_name import *
- module的內置屬性
_name__
用於判斷當前模塊是否是程序的入口,如果當前程序正在被使用,那麼其值爲__main__
,通常給每個模塊都加上一個條件語句,用於單獨測試該模塊的功能
if __name__ == `__main__`:
print("module作爲主程序運行")
else:
print("module供其他程序所調用")
__doc__
文檔字符串,存儲文檔相關描述信息。可以用三引號來定義。
3.自定義包package
package 的作用與Java中的作用是相同的,都是爲了實現程序的重用。
每個package中都必須含有一個 __init__.py
在模塊被 import的時候被調用
如:
__all__ =["module1","module2"] #記錄當前package所包含的模塊列表,添加了這一行之後就可以用 from module import * 方式導入全部模塊了
if __name__ == "__main__":
print("作爲主函數運行")
else:
print("供其他程序調用")
4.lambda函數
lambda函數用於創建一個匿名函數。使用lambda函數可以返回一些簡單的運算結果。其格式如下:
lambda var1, var2, ... : expression
其中變量用於表達式的計算。通常把lambda賦值給一個變量,變量就可以作爲函數使用。例如:
func = lambda var1, var2, ... : expression
func() #調用
這樣就把lambda和變量func綁定在一起了,變量func的名字就是函數名。
注意:lambda中只能使用表達式,不能使用判斷、循環等多重語句。
5. Generator函數
- 生成器(Generator)的作用是一次產生一個數據項,並把數據輸出。Generator函數可以用在for循環中。
- Generator函數的定義與普通函數沒有區別,只要在函數體內使用 yield 生成數據項即可。
- Generator函數可以被for循環遍歷,而且可以通過next()方法獲得yield生成的數據項。
示例代碼如下:
def func(n): #Generator函數定義
for i in range(n):
yield i
for i in func(5): #for 循環遍歷
print(i)
gen = funct(5)
print(gen.next()) #next()獲取下一個元素
print(gen.next())
print(gen.next())
Generator與序列的區別:
- Genarator一次只返回一個數據項,佔用更少的內存。元素通過next()訪問。每次生成數據都要記錄當前的狀態,便於下一次生成數據。
- 序列一次返回所有數據,元素通過索引訪問
- 當程需要較高的性能或者一次只需要一個值進行處理地時候。使用Generator函數。當需要一次性生成所有數據的時候,使用序列