1. 程式人生 > >python函式之第一類物件

python函式之第一類物件

目錄

python函式之第一類物件

第一類物件(英語:First-class object)在電腦科學中指可以在執行期創造並作為引數傳遞給其他函式或存入一個變數的實體。將一個實體變為第一類物件的過程叫做“物件化”(Reification)。

1、函式名字是對函式的引用。python中所有的東西都是物件,所以函式名字是函式物件的引用

>>> def foo():
    print('in foo')

    
>>> foo
<function foo at 0x00000201F328AD90>

2、函式作為第一類變數可以賦值給其他變數

>>> def foo():
    print('in foo')

    
>>> foo
<function foo at 0x00000201F328AD90>
>>> f = foo
>>> foo()
in foo
>>> f()
in foo
>>> id(f), id(foo)
(2207397752208, 2207397752208)
>>> f
<function foo at 0x00000201F328AD90>

3、函式作為第一類物件,可以作為引數傳遞

>>> def foo():
    a = 10
    return a

>>> print(foo())
10

4、函式作為第一物件,可以作為函式的返回值。

>>> def foo():
    def inner():
        print('我是函式的返回值')
    return inner  # 函式名可以返回

>>> ret = foo()
>>> ret()  # 在函式外面訪問了函式內部的函式
我是函式的返回值

5、函式名還可以作為容器類的元素

>>> def foo1():
    print('我是函式一')

    
>>> def foo2():
    print('我是函式二')

    
>>> def foo3():
    print('我是函式三')

    
>>> def foo4():
    print('我是函式四')

    
>>> list_foo = [foo1, foo2, foo3, foo4]
>>> for i in list_foo:
    i()

    
我是函式一
我是函式二
我是函式三
我是函式四