函数对象
一、函数是第一类对象,即函数可以当作数据传递
#1 可以被引用
#2 可以当作参数传递
#3 返回值可以是函数
#3 可以当作容器类型的元素
二、利用该特性,优雅的取代多分支的if
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def foo(): print ( 'foo' ) def bar(): print ( 'bar' ) dic = { 'foo' :foo, 'bar' :bar, } while True : choice = input ( '>>: ' ).strip() if choice in dic: dic[choice]() |
三、函数是第一个等公民:可以把函数当变量去用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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("输入的指令错误")
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步