1.函数名的内存地址
# def func(): # print('呵呵') # # print(func) # 结果: <function func at 0x00000000021F89D8> # 返回的是func这个函数在内存中的存储地址
2.函数名可以赋值给其他的变量
# def func1(): # print('呵呵') # # func1() # 调用函数"func1" # # a = func1 #将函数"func1"的内存地址赋值给变量"a" # a() # "a"就是指向了"func1"函数的内存地址,所以也是可以条用这个函数
3.函数名可以当做容器的元素
# def func1(): # print('呵呵') # # def func2(): # print('哈哈') # # def func3(): # print('嘿嘿') # # def func4(): # print('吼吼') # # lst = [func1,func2,func3,func4] # for i in lst: # i() # 结果: # 呵呵 # 哈哈 # 嘿嘿 # 吼吼
4.函数名可以当做函数的参数进行传递
# def func1(): # print('吃了吗') # # def func2(fn): # print('我是func2') # fn() # # func2(func1) # 结果 # 我是func2 # 吃了吗
5.函数名也可以当做另一个函数的返回值
def func1(): # print('我是函数一') # def func2(): # print('我是函数二') # return func2 # fn = func1() # fn() # 结果: # 我是函数一 # 我是函数二 # 调用函数一,在函数一里定义了一个函数二,return返回的是函数二的函数名 # 函数外用"fn"去接收了这个函数名,就相当于把函数二赋值给了"fn"