1. 程式人生 > 實用技巧 >函式物件

函式物件

一、函式是第一類物件,即函式可以當作資料傳遞

#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("輸入的指令錯誤")
練習標註