def func(): print("呵呵") print(func) 结果: <function func at 0x1101e4ea0>
函数名是⼀个变量, 但它是⼀个特殊的变量, 与括号配合可以执⾏函数的变量.
当打印函数名的时候会发现出现的是一个内存地址
函数名可以赋值给变量
def func(): print("呵呵") print(func) a = func # 把函数当成⼀个变量赋值给另⼀个变量 a() # 函数调⽤ func()
函数名可以当做容器类的元素
def func1(): print("呵呵") def func2(): print("呵呵") def func3(): print("呵呵") def funcc4(): print("呵呵") lst = [func1, func2, func3,func4] for i in lst: i()
函数名可以当做函数的参数
def func(): print("吃了么") def func2(fn): print("我是func2") fn() # 执⾏传递过来的fn print("我是func2") func2(func) # 把函数func当成参数传递给func2的参数fn.
函数名可以作为函数的返回值
def func_1(): print("这⾥是函数1") def func_2(): print("这⾥是函数2") print("这⾥是函数1") return func_2 fn = func_1() # 执⾏函数1. 函数1返回的是函数2, 这时fn指向的就是上⾯函数2 fn() # 执⾏上⾯返回的函数