第六篇 函數對象、函數嵌套、名稱空間與作用域、裝飾器
阿新 • • 發佈:2018-03-28
max 數據 多分支 數據傳遞 nbsp urn int clas 什麽
一、函數對象
-
函數是第一類對象,即函數可以當作數據傳遞
#1 可以被引用 #2 可以當作參數傳遞 #3 返回值可以是函數 #4 可以當作容器類型的元素
-
利用該特性,優雅的取代多分支的if
def foo(): print(‘foo‘) def bar(): print(‘bar‘) dic={ ‘foo‘:foo, ‘bar‘:bar, } while True: choice=input(‘>>: ‘).strip() if choice in dic: dic[choice]()
二、函數嵌套
-
函數的嵌套調用:在函數內又調用了其他函數
def max2(x,y): if x > y: return x else: return y def max3(x,y,z): res1=max(x,y) res2=max2(res1,z) return res2 print(max3(11,199,2))
-
函數的嵌套定義:在函數內又定義其他函數
def f1(): print(‘f1‘) def f2(): print(‘f2‘) def f3(): print(‘f3‘) f3() f2() f1()
三、名稱空間與作用域
-
什麽是名稱空間?
名稱空間:存放名字的地方,三種名稱空間 x=1 名稱空間正是存放名字x與1綁定關系的地方
-
名稱空間的加載順序
python test.py #1、python解釋器先啟動,因而首先加載的是:內置名稱空間 #2、執行test.py文件,然後以文件為基礎,加載全局名稱空間 #3、在執行文件的過程中如果調用函數,則臨時產生局部名稱空間
第六篇 函數對象、函數嵌套、名稱空間與作用域、裝飾器