一、函数是第一类对象,即函数可以当作数据传递
#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("输入的指令错误")
原文:https://www.cnblogs.com/datatool/p/13457917.html