函式與Lambda表示式

2021-10-08 18:49:14 字數 1868 閱讀 4193

def myfirstfunction(name):

「函式定義過程中name是形參」

# 因為ta只是乙個形式,表示佔據乙個引數位置

print(『傳遞進來的叫做實參,因為ta是具體的引數值!』.format(name))

myfirstfunction(『老馬的程式人生』)

#傳遞進來的老馬的程式人生叫做實參,因為ta是具體的引數值!

print(myfirstfunction.doc)

#函式定義過程中name是形參

help(myfirstfunction)

help on function myfirstfunction in modulemain:

myfirstfunction(name)

函式定義過程中name是形參

位置引數 (positional argument)

預設引數 (default argument)

可變引數 (variable argument)

關鍵字引數 (keyword argument)

命名關鍵字引數 (name keyword argument)

引數組合

當內部作用域想修改外部作用域的變數時,就要用到global和nonlocal關鍵字了。

num =

1def

fun1()

:global num # 需要使用 global 關鍵字宣告

print

(num)

# 1 num =

123print

(num)

# 123

fun1(

)print

(num)

# 123

def

outer()

:print

('outer函式在這被呼叫'

)def

inner()

:print

('inner函式在這被呼叫'

) inner(

)# 該函式只能在outer函式內部被呼叫

outer(

)

是函式式程式設計的乙個重要的語法結構,是一種特殊的內嵌函式。

如果在乙個內部函式裡對外層非全域性作用域的變數進行引用,那麼內部函式就被認為是閉包。

通過閉包可以訪問外層非全域性作用域的變數,這個作用域稱為 閉包作用域。

例子

def

funx

(x):

deffuny

(y):

return x * y

return funy

i = funx(8)

print

(type

(i))

# print

(i(5))

# 40

如果要修改閉包作用域中的變數則需要 nonlocal 關鍵字

def

outer()

: num =

10def

inner()

:nonlocal num # nonlocal關鍵字宣告

num =

100print

(num)

inner(

)print

(num)

outer(

)

在 python 裡有兩類函式:

expression 中沒有 return 語句,因為 lambda 不需要它來返回,表示式本身結果就是返回值。

匿名函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數。

函式與lambda表示式

lambda表示式是python中一類特殊的定義函式的形式,使用它可以定義乙個匿名函式。與其它語言不同,python的lambda表示式的函式體只能有單獨的一條語句,也就是返回值表示式語句。其語法如下 lambda 形參列表 函式返回值表示式語句 常規函式 def comp x return x a...

函式與Lambda表示式

學習人員 賈其豪 函式定義預設值引數 函式定義時,給形參設定預設值,只有與預設值不符的時候才需要傳遞實參 deffun a,b 10 b稱為預設值引數 print a,b 函式的呼叫 fun 100 fun 20,30 個數可變的位置引數 定義函式時,可能無法事先確定傳遞的位置實參的個數時,使用可變...

lambda表示式 lambda表示式

1.概述 c 11 中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或 exception 宣告 返回值型別可以看到,lambda 主要分為五個部分 函式物件引數 操作符過載函式引數 muta...