之前就了解到了裝飾器, 但是就會點皮毛, 而且對其呼叫方式感到迷茫,正好現在的專案我想優化,就想到了用裝飾器, 因此深入研究了下裝飾器.
先看下**:
import我的疑惑就是明明return 的是乙個函式名,按道理來講,返回的就是乙個函式位址啊!我理解有問題?隨後上網查資料,又是閉包....但是我個人對它不感冒,隨後自己分析,總結出了一段程式,看完你就知道原因了.time
#將函式作為引數傳入到此方法....
deftimeif(func):
def
print("
" %(arg))
start =time.clock()
func(arg)
end =time.clock()
print("
used: %s %s
" % (end-start, arg))
return
@timeif
deffoo(arg):
print("
in foo() %s
" %(arg))
if__name__ == '
__main__':
foo(
"hello
") #
表示執行foo函式....
程式:
#這和我們的裝飾器不像嗎?這就是我們的裝飾器!因此,我們可以按照上面的程式來理解,也就是說它是首先確定引數個數,隨後分別傳入的,下面,我們來改寫**:coding=utf-8
#帶引數的函式 返回乙個函式位址就行....
deffunx(x):
deffuny():
return
x
return
funy
#不帶引數的函式....
deffunx1():
print("
呼叫函式funx1")
deffuny1():
print("
呼叫函式funy1")
return
funy1
if__name__ == '
__main__':
#print(funx(5)()) # 呼叫有引數的巢狀函式...
print(funx1()()) #
呼叫無引數的巢狀函式...
#coding=utf-8
import
time
#將函式作為引數傳入到此方法....
深入淺出理解索引
一 深入淺出理解索引結構 實際上,您可以把索引理解為一種特殊的目錄。sql server提供了兩種索引 聚集索引 clustered index,也稱聚類索引 簇集索引 和非聚集索引 nonclustered index,也稱非聚類索引 非簇集索引 下面,我們舉例來說明一下聚集索引和非聚集索引的區別...
深入淺出理解索引
一 深入淺出理解索引結構 實際上,您可以把索引理解為一種特殊的目錄。sql server提供了兩種索引 聚集索引 clustered index,也稱聚類索引 簇集索引 和非聚集索引 nonclustered index,也稱非聚類索引 非簇集索引 下面,我們舉例來說明一下聚集索引和非聚集索引的區別...
深入淺出理解 COOKIE MAPPING
在網際網路中,我們有著許多標識唯一使用者的技術手段,其中,最為常見的就是 cookie 了 什麼是cookie請參看 分析中的cookie 簡單的多,cookie具備幾個特徵 正因為cookie具備上述幾個特徵,也就衍生出cookie在使用上的一些特點了,我們以dsp.com 廣告購買平台 adx....