二、高階函式
三、裝飾器
結果:什麼是匿名函式,就是在定的時時候,我們不需要定義函式名
# 匿名函式
defadd
(x,y)
:return x+y
lambda parameter_list: expression
# parameter_list 等價於函式引數x,y
# expression 等價於函式定義部分
lambda x,y: x+y
f =
lambda x,y: x+y
a = f(1,
2)print
(a)# 結果:
3
f =
lambda x,y: a = x+y
a = f(1,
2)print
(a)# 結果:
f =lambda x,y: a = x+y
^syntaxerror: cannot assign to lambda
"""---------------------- map和lambda ----------------------"""
list_x =[1
,2,3
,4,5
,6,7
,8]r =
map(
lambda x:x*x,list_x)
print
(list
(r))
# 結果:[1
,4,9
,16,25
,36,49
,64]
"""---------------------- map和lambda ----------------------"""
list_x =[1
,2,3
,4,5
,6,7
,8]list_y =[1
,2,3
,4,5
,6,7
,8]r =
map(
lambda x,y:x*x+y,list_x,list_y)
print
(list
(r))
# 結果:[2
,6,12
,20,30
,42,56
,72]
當傳入引數的個數不一樣時,會按照短的進行計算
list_x =[1
,2,3
,4,5
,6,7
,8]list_y =[1
,2,3
,4,5
,6]r =
map(
lambda x,y:x*x+y,list_x,list_y)
print
(list
(r))
# 結果:[2
,6,12
,20,30
,42]
def
reduce
(function, sequence, initial =
none
)# function 函式
# sequence 序列
# initial 初始值
"""---------------------- reduce ----------------------"""
from functools import
reduce
# 匯入reduce
list_x =[1
,2,3
,4,5
,6,7
,8]r =
reduce
(lambda x,y:x+y,list_x)
print
(r)# 結果:((1+2)+3)...+8
36
"""---------------------- reduce ----------------------"""
from functools import
reduce
# 匯入reduce
list_x =
["1"
,"2"
,"3"
,"4"
,"5"
,"6"
,"7"
,"8"
]r =
reduce
(lambda x,y:x+y,list_x,
"aaa"
)print
(r)# 執行結果:
aaa12345678
"""---------------------- 裝飾器 ----------------------"""
import time
defdecorator
(func)
:"""傳入函式引數"""
def(
*args,
**kw)
:print
(time.time())
func(
*args,
**kw)
@decorator
deff3
(function_name, function_name2,
**kw)
:print
("this is a function"
+function_name+function_name2)
print
(kw)
f3("\ta"
,"\ts"
,a=1
,c='123'
)# 結果:
1603363822.756178
this is a function a s
@decorator
def f3(function_name, function_name2,**kw):
print(「this is a function」+function_name+function_name2)
print(kw)
f3("\ta","\ts",a=1,c=『123』)
1603363822.756178
this is a function a s
### 4.裝飾器四,應用
+ 對封裝的單元進行修改的話,可以通過裝飾器的形式進行修改。
Objective C 程式設計 第十二章
預處理程式語句使用 開頭,一行中的第乙個非空字元。大部分內容都與c語言類似,相當於複習啦。預定義不是變數。不能為它賦值。實際上是字元的簡單替換。define語句常放在 import或 include語句後邊。定義乙個名稱後,可以在任何地方使用。一般放在標頭檔案,方便在多個原始檔中使用。所有預定義的名...
第十二章 併發程式設計
1 併發 邏輯控制流在時間上重疊 2 併發程式 使用應用級併發的應用程式稱為併發程式。3 三種基本的構造併發程式的方法 1 需要乙個sigchld處理程式,來 僵死子程序的資源。2 父子程序必須關閉各自的connfd拷貝。對父程序尤為重要,以避免儲存器洩露。3 套接字的檔案表表項中的引用計數,直到父...
第十二章 併發程式設計
構建併發伺服器的方法 在父程序中接收客戶端連線請求,然後建立乙個新的子程序來為每個新客戶端提供服務。假設現在有兩個客戶端和乙個伺服器,伺服器正在監聽乙個監聽描述符上的連線請求。併發過程如下 1 伺服器接受客戶端1的連線請求 2 伺服器派生乙個子程序為這個客戶端1服務 3 伺服器接受另乙個客戶端2的連...