1.查看函数的内存地址
def func(): print(1) print(func) #<function func at 0x0000000000681E18>(函数的内存地址)
2.函数名当做值赋给变量
def func(): print(1) a = func #将func当做值赋值给变量a print(func()) print(a) 结果: 1 None <function func at 0x00000000004F1E18>
3.函数名可以当做参数去传递给函数
def func(): print(1) return "努力学习python" #返回给func() def func2(msg): #努力学习python == msg print(msg) func2(func()) #将return返回值 返回给func(),然后又将func()当作参数传递给func2()中的msg # 结果: 1 努力学习python
4.函数名可以当作返回值被返回
def foo(): print(2) # 当函数没有写return默认返回None def func(msg): print(1) return msg() ###msg指的是foo的内存地址 msg()指的调用函数 # 容易犯的错误 print(func(foo)) # 函数名可以当做返回值被返回 结果: 1 2 None
5.函数名可以当做元素存放在一个容器中
def foo(): print(1) return "猪蹄" def func(): print(2) ret = foo() return ret def func1(): print(3) msg = func() #函数名可以当做元素存放在一个容器中 return msg print(func1()) #接力 (接力:第二个函数的return返回值是第一个函数的函数名)
总结:
1.函数名可以直接查找内存地址
2.函数名可以当做值赋值给变量
3.函数名可以作为参数进行传递给函数
4.函数名当做返回值,返回值加括号 接力的时候要一层一层往下传
5.函数名可以当做元素存放到一个容器中