目录
第一类对象(英语: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()
我是函数一
我是函数二
我是函数三
我是函数四