函式物件
阿新 • • 發佈:2020-08-08
一、函式是第一類物件,即函式可以當作資料傳遞
#1 可以被引用
#2 可以當作引數傳遞
#3 返回值可以是函式
#3 可以當作容器型別的元素
二、利用該特性,優雅的取代多分支的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 func(): # func=函式的記憶體地址 print('from func') x=10 # x=10的內地址 #1、可以被賦值 f=func f() #2、可以當作引數傳給另外一個函式 def foo(f): print(f) f() foo(func) # 3、可以當作函式的返回值 def foo(f): return f res=foo(func) print(res) # 4、可以當作容器型別的元素 l=[func,] print(l) l[0]()
四、
def login(): print('登入...')練習標註def register(): print('註冊...') def tranfer(): print('轉賬...') def withdraw(): print("提現功能。。。") func_dic={ "1":["登入",login], "2":["註冊",register], "3":["轉賬",tranfer], "4":["提現",withdraw] } while True: for k,v in func_dic.items(): print(k,v[0]) choice = input("請輸入您的命令編號,輸入0退出:").strip() if choice == "0": break if choice in func_dic: func_dic[choice][1]() else: print("輸入的指令錯誤")