什麼是函式式程式設計呢?一定要和函式區分開,函式式程式設計允許把函式本身作為乙個引數傳入到另乙個函式,並允許返回乙個函式
functions.partial作用:
把乙個函式的某些引數固定住(即設為預設值,返回乙個新函式)
栗子:
>>>
import functools
>>> int2 = functools.partial(int, base=2)
>>> int2('1000000')
64
定義:在**執行期間動態增加功能的方式(換成白話:不修改原來**的前提下,給函式增加新的功能)
本質:返回乙個函式的高階函式
python裝飾器詳解
python裝飾器–原來如此簡單
匿名函式也是乙個函式物件,可以將其賦值給乙個變數,然後通過變數呼叫該函式
也可以將匿名函式作為函式值返回
def
build
(x,y):
return
lambda x*x+y*y
如果在乙個函式的內部定義了另乙個函式,外部的我們叫他外函式,內部的我們叫他內函式。
在乙個外函式中定義了乙個內函式,內函式裡運用了外函式的臨時變數,並且外函式的返回值是內函式的引用。這樣就構成了乙個閉包。
#閉包函式的例項
# outer是外部函式 a和b都是外函式的臨時變數
defouter
( a ):
b = 10
# inner是內函式
definner
():#在內函式中 用到了外函式的臨時變數
print(a+b)
# 外函式的返回值是內函式的引用
return inner
if __name__ == '__main__':
# 在這裡我們呼叫外函式傳入引數5
#此時外函式兩個臨時變數 a是5 b是10 ,並建立了內函式,然後把內函式的引用返回存給了demo
# 外函式結束的時候發現內部函式將會用到自己的臨時變數,這兩個臨時變數就不會釋放,會繫結給這個內部函式
demo = outer(5)
# 我們呼叫內部函式,看一看內部函式是不是能使用外部函式的臨時變數
# demo存了外函式的返回值,也就是inner函式的引用,這裡相當於執行inner函式
demo() # 15
demo2 = outer(7)
demo2()#17
注意:返回函式不要引用任何迴圈變數或者後續會發生變化的變數
何為高階函式:乙個函式可以接受另乙個函式作為引數
map將傳入的函式依次作用於序列的每個元素,並把結果作為新的iterator返回
map
(函式,iterable)
將函式作用在序列上,reduce把結果繼續和序列的下乙個元素做求和運算
reduce
(函式,[x1,x2,x3...])
用於過濾序列,filter()把傳入的函式依次作用於每個元素,然後根據返回值true還是false決定保留還是丟棄該元素
filter
(函式,序列)
對list進行排序,通過key關鍵字可實現自定義排序,比如:
key = abs
key = str.lower
reverse = true
python廖雪峰教程 學習筆記
如何用字元來描述字元 d匹配數字 digit w匹配字母或數字 word s可以匹配空格 space 表示任意個字元,表示至少乙個字元 表示0個或1個字元,表示n個字元,表示n m個字元 可以匹配任意字元 例如 kongxiangyu w如何做到更精確的匹配?規定數字 字母或者下劃線 0 9a za...
廖雪峰python學習筆記之IO程式設計
讀檔案的幾種方式 不要求從特定的類繼承,只要寫個read方法即可 stringio 在記憶體中建立file like物件,常做臨時緩衝區 目前感覺這兩樣沒怎麼應用過,畢竟也不是很難的東西,需要用到的時候再說唄,嘻嘻 from io import stringio f stringio f.write...
Git 廖雪峰 學習筆記
目錄 git工作區域 git初始化及倉庫建立和操作 初始化新的git倉庫 1.新建資料夾 2.在檔案內初始化git 如何將本地倉庫同步到git 遠端倉庫 1.關聯遠端庫 2.第一次推送master分支的所有內容 3.每次本地提交後,推送最新修改 轉殖 分支管理 1.建立與合併分支 2.解決衝突 3....