一函数是第一类对象,即函数可以当做数据传递
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() #报错,为何?请看下一小节