python函数对象
函数对象
函数是第一类对象, 即函数可以被当作数据处理。
def func():
print('from func')
print(func)#func 指向一块内存地址,函数名
#输出:
<function func at 0x000002AD89B5E5E8>
一、函数对象的四大功能
- 引用(变量名可以被引用,函数名也可以被引用)
def func():
print('from func')
x = 'hello chen'
y = x
f = func
print(f,func)
#输出:
<function func at 0x000001CFCD9AE5E8> <function func at 0x000001CFCD9AE5E8>
- 当作一个参数传给一个函数
def func():
print('from func')
def foo(m):
m()
foo(func)
#输出:
from func
-
可以当作函数的返回值
def func(): print('from func') def foo(x): return x res = foo(func) print(res) res() #输出: <function func at 0x000002036E0F4F78> from func
-
可以当作容器类元素
# 变量名可以放入容器类数据类型
def func():
print('from func')
a= 1
lt = [1, 2, a, func]
lt[-1]()
#输出:
from func