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.函数名可以当做元素存放到一个容器中