廖雪峰python學習筆記之函式式程式設計

2021-08-20 00:01:58 字數 1794 閱讀 5582

什麼是函式式程式設計呢?一定要和函式區分開,函式式程式設計允許把函式本身作為乙個引數傳入到另乙個函式,並允許返回乙個函式

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....