看教程的時候,看到了閉包,教程後面說用閉包實現一直計數器,我嘗試了下
def
createcounter
(): num = 100
cnt = [0]
i = 0
defcounter
():print num
cnt[0] = cnt[0] +1
i = i + 1
return i
#return cnt[0]
#return ("%d" %(num+1))
return counter
countera = createcounter()
print(countera(), countera(), countera(), countera(), countera())
使用i的這種方式會報錯,然後看了下使用列表就是可以的,找了下,看到下面的文章做了解釋 python中閉包和裝飾器
前言 程式語言發展的過程中,我們為了提高 利用率,發明了函式式程式設計。函式將 封裝起來,我們需要用到此功能函式的時候,呼叫一下就可以了。但是使用的過程中,也遇到了一些問題,比如函式實現的功能不夠,或者跟我們要實現的功能有些差別。腫麼辦呢?開啟函式內部 重新寫?可以嗎?可以!但是這就違背了函式式程式...
Python中的閉包和修飾器
python對閉包的官方說法 閉包表示乙個內部函式裡對外部作用域 但不是全域性作用域 的變數進行引用,就認為內部函式是閉包。閉包可以形象的理解為乙個封閉的包裹,這個包裹就是乙個函式,且這個函式有乙個特點,它將外部作用域中的變數也包裹進去了。閉包意味著,如果呼叫乙個函式a,這個函式a返回乙個函式b,那...
關於python2中的string和unicode
一 d u 你好 print d d u xc4 xe3 xba xc3 e 你好 print e 你好 e xc4 xe3 xba xc3 發現了嗎,在idle中試圖輸入中文並指定為unicode失敗,編碼依舊是系統編碼 gbk 加了個字首u,成了偽unicode。於是考慮decode獲得unic...