Python中的函式物件與閉包

2022-04-03 13:31:55 字數 1058 閱讀 3072

函式在python中是第一類物件,可以當做引數傳遞給其他函式,放在資料結構中,以及作為函式的返回結果。

下面的例子為接受另外乙個函式作為輸入並呼叫它

1

#foo.py

2def

callf(func):

3return func()

使用上面的函式:

1

import

foo2

defhelloworld():

3return

'hello,world'4

5print foo.callf(helloworld)

>>>『hello,world』

2.把函式當做資料處理時,它將顯示地攜帶與定義該函式的周圍環境相關的資訊。

將組成函式的語句和這些語句的執行環境打包在一起時,得到的物件稱為閉包

1

#foo.py

2 x=42

3def

callf(func):

4return func()

使用巢狀函式時,閉包將捕捉內部函式執行所需的整個環境

1

import

foo2

defbar():

3 x=13

4def

helloworld():

5return

'hello world. x is %d

'%x6

print foo.callf(helloworld)

>>>hello world. x is 13

閉包實踐:

1

defa(number):

2def

b(x):

3return number+x

4return

b5 abc=a(5)

6print abc(2)

7 >>>7

函式b形成以閉包,number為自由變數,當函式a銷毀的時候,自由變數number因為被b呼叫的原因,依舊存在。

python中的函式物件與閉包函式

在python中,一切皆物件,函式也是物件 在python語言中,宣告或定義乙個函式時,使用語句 def func name arg1,arg2,func suite當執行流程遇到def語句時,會在記憶體中生成乙個函式物件。這個函式物件被定義為這個函式的名字。當我們呼叫函式時就要指定函式的名字,通過...

python中的函式物件與閉包函式

在python中,一切皆物件,函式也是物件 在python語言中,宣告或定義乙個函式時,使用語句 def func name arg1,arg2,func suite當執行流程遇到def語句時,會在記憶體中生成乙個函式物件。這個函式物件被定義為這個函式的名字。當我們呼叫函式時就要指定函式的名字,通過...

Python 函式物件與閉包

函式物件指的是函式可以被當做 資料 來處理,具體可以分為四個方面的使用。def index print from index a index a def foo x,y,func print x,y func def bar print from bar foo 1,2,bar 1 2 from b...