python程式設計高階

2021-08-13 21:11:31 字數 686 閱讀 4578

1、開閉原則

遵循開發封閉原則,雖然在這個原則是用的物件導向開發,但是也適用於函式式程式設計,簡單來說,它規定已經實現的功能**不允許被修改,但可以被擴充套件,即:

封閉:已實現的功能**塊

開放:對擴充套件開發

2、可使用裝飾器實現開閉原則

裝飾器是不對原函式內部**進行修改的前提下,在外部增加一些功能,再將這個新函式引用到原函式名。

這意味著:

①裝飾器本身是個函式,並接受另乙個函式作為輸入

②在裝飾器內部必須呼叫原函式,否則無法實現原函式的作用,裝飾器無法發揮其原本應有的作用

③被裝飾器裝飾過的函式,雖然函式名(引用)沒有發生改變,但是其實現的功能已經發生了改變,其最先的**部分並沒有改變,但

新增了部分**

④必須把新增了**的函式作為返回物件返回,否則原函式的引用將無法引用到改變後的函式

裝飾器的實現是通過閉包來實現的,即在函式的內部定義乙個函式。故乙個簡單的裝飾器可寫成如下形式:

def deco(func):

def _deco(*args, **kwargs):

print '做一些事情'

ret = func(*args, **kwargs)

print '做另一些事情'

return ret

return _deco

python高階程式設計

包和模組的概念及is和 的區別1.包 包含多個python檔案 模組的資料夾,並且資料夾中有乙個名稱為init.py的特殊宣告檔案,那麼這個資料夾就是乙個包 模組包 可以將大量功能相關的python模組包含起來統一管理,同樣也可以被其他模組通過import關鍵字引入重複使用封裝的模組和 2.模組 p...

Python高階程式設計

list comprehension 1.列表推導 i for i in range 10 if i 2 0 0,2,4,6,8 i也可以是乙個函式,該風格比c語言思想的 風格效率高 2.enumerate 取到了序列中的序列號好內容 forindex,item inenumerate sequen...

python 高階程式設計 三

decorator 作用在某個函式上面,將其函式指標作為引數傳入,然後新增一些操作,最後返回原來函式 兩種方式,一種是無參的 def decorator func def new func args,kws print add some operations func args,kws return...