函数是第一类对象,函数名指向的值可以被当作参数传递。
1),函数名可以被传递;就像变量赋值一样,把值赋给变量名,再把这个变量名传递给其他的变量名。
name=‘niuer‘ x=name 此时x也就等于‘niuer’,x和name 同时指向‘niuer’的内存地址
而函数被调用执行完函数体代码以后,打印函数名(不加括号),返回的是函数体代码的内存地址。如下图所示。
2),函数名可以被当做参数传递给其他函数

图中,我们直接将函数func()的函数名直接以参数的方式传递给index函数,在index()函数体内部先打印func,即是func函数体代码对应内存地址,然后执行args(),即是执行func()函数,进入func()函数体内部执行代码,之后再打印‘fromindex’。
3.函数名可以被当做函数的返回值

首先执行func()的函数体代码,return返回index,然后参数传递给res,再加上括号,相当于调用index函数
4.可以被当做容器类型的元素
def func(): print(‘from func‘) func_list = [func] func_list[0]() #from func




