1、函数对象
在函数中,函数是第一类对象,函数是第一等公民
函数可以被当成变量去用
1、可以被赋值
2、可以当做参数传给另一个函数
3、可以当作函数的返回值
4、可以当作容器类型的元素
1.1、可以被赋值
def add(x,y):
return x+y
func=add
print(func(1,2))
# 3
1.2、可以当做参数传给另一个函数
def add(x,y):
return x+y
func=add
def foo(x,y,func):
return func(x,y)
print(foo(1,2,func))
# 3
1.3、可以当作函数的返回值
def add(x,y):
return x+y
def bar():
return add
func = bar()
print(func(1, 2))
# 3
1.4、可以当作容器类型的元素
def add(x,y):
return x+y
dic = { 'add':add }
print(dic['add'](1,2))
# 3
2、函数嵌套
2.1、函数的嵌套定义
def money(name,mode=0):
def fun1(name):
print(name)
def fun2(name):
print('这是第二个%s'%name)
if mode==0:
fun1(name)
elif mode==1:
fun2(name)
else:
print('错误')
money('你好',0) # 你好
money('你好',1) # 这是第二个你好
money('你好',2) # 错误
2.2、函数的嵌套调用
def max(x,y): # 求2个数最大值
if x>y:
return x
else:
return y
def max3(x,y,z): # 求3个数最大值
res = max(x,y) #调用求2个数最大值函数
res = max(res,z)
return res
max1 = max3(10,15,20)
print(max1) # 20