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"