函数对象和函数嵌套

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
posted @ 2021-03-30 18:49  此用户名不可用  阅读(61)  评论(0)    收藏  举报