函数对象

一函数是第一类对象,即函数可以当做数据传递

1.函数可以被引用

2.函数可以当做参数进行传递

3.返回值可以是函数

4.可以当做容器类型的元素

二。利用该特性优雅的取代多分支if

复制代码
def foo():                 #定义foo函数,
    print('foo')

def bar():
    print('bar')

dic={
    'foo':foo,
    'bar':bar,
}
while True:
    choice=input('>>: ').strip()
    if choice in dic:
        dic[choice]()
 

二 函数嵌套

一 函数的嵌套调用


def max(x,y): 
    return x if x > y else y                   

def max4(a,b,c,d):              
    res1=max(a,b)                    #在函数max4下调用函数max,比较a,b的大小,并将最大值返回给x
    res2=max(res1,c)
    res3=max(res2,d)
    return res3
print(max4(1,2,3,4))

复制代码

二 函数的嵌套定义

def f1():
    def f2():
        def f3():
            print('from f3')
        f3()
    f2()

f1()
f3() #报错,为何?请看下一小节
复制代码
原文地址:https://www.cnblogs.com/sui776265233/p/8669849.html