函式物件,函式巢狀,名稱空間與作用域,裝飾器
阿新 • • 發佈:2018-11-28
一,函式物件
函式是第一類物件,即函式可以當做資料傳遞
1.可以被引用
2.可以當做引數傳遞
len(x) def foo(m): # print(m) m() foo(func)
3.返回值可以是函式
def foo(x): #x=func return x #return func res=foo(func) print(res) res()
4.可以當作容器型別的元素
l=[x,] l=[func,] # print(l) l[0]()
利用該特性,優雅的取代多分支的if語句:
def login(): print("登陸") def register(): print("註冊") def shopping(): print("購物") res = input("請選擇功能名稱:") # if res == "login": # login() # elif res == "register": # register() # elif res == "shopping": # shopping() # else: # print("輸入有誤") funcdic = {"login":login,"register":register,"shopping":shopping} if res in funcdic: funcdic[res]() else: print("輸入有誤!")