全域性變數和區域性變數
count =
10#全域性變數
deffun1()
: count =
5#建立乙個和全域性變數一樣名字的區域性變數,兩者不是乙個
print
(count)
>>
>fun1(
)#輸出函式中count
>
5>>
>count #區域性變數不影響全域性變數
>
10
global關鍵字,nonlocal
count =
10def
fun1()
:global count #這裡是引用全域性變數
count =
5print
(count)
>>
>count
>
10>>
>fun1(
)>
5>>
>count //全域性變數改變了
>
5
內嵌函式
>>
>
def funx():
#在這個函式內部可以隨意調動內嵌函式,但是在外面不可以
print
("函式fun1"
)def
fun2()
:print
("內嵌函式fun2"
) fun2(
)>>
>fun2(
)函式fun1
內嵌函式fun2
閉包:
>>
>
deffunx
(x):
deffuny
(y):
deffuny
(y):
return x*y
return funy
>>
> i = funx(8)
i>
<
locals
>
.funy at 0x000001c79aeb0bf8
>
>>
>
type
(i)//顯示是函式
>
<
class
'function'
>
#>i(5)
>
40>>
>funx(4)
(6)>
24
匿名函式,lambda所謂匿名,意即不再使用 def 語句這樣標準的形式定義乙個函式。
只包含乙個語句:lambda 後面用到的引數:expression
# 可寫函式說明
sum=
lambda arg1, arg2: arg1 + arg2
# 呼叫sum函式
print
("相加後的值為 : "
,sum(10
,20))
print
("相加後的值為 : "
,sum(20
,20))
內嵌函式和閉包
1 python裡面定義函式和c裡面一樣,也存在函式的巢狀定義,eg def fun1 x def fun2 y z x y return z return fun2則在函式呼叫的時候需要傳遞2個實參,分別給x,y 且形式為 result fun1 a b 2 由於在python函式定義的時候,出現...
python 內嵌函式和閉包
在函式體內定義函式 定義a 函式 defa print a 函式 定義b 函式 defb print b 函式 呼叫b 函式 b 呼叫a 函式 a 輸出 a 函式 b 函式 定義閉包函式 defa num1 def b num2 return num1 num2 return b 檢視a 函式的返回...
課時20 內嵌函式和閉包
目錄 一 global關鍵字 二 內嵌函式 三 閉包 四 課時20課後習題及答案 一 global關鍵字 全域性變數的作用域是整個模組 整個 段 也就是 段內所有的函式內部都可以訪問到全域性變數。但是要注意一點,在函式內部僅僅去訪問全域性變數就好,不要試圖去修改它。因為那樣的話,python會使用遮...