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