一,函数对象
函数是第一类对象,即函数可以当做数据传递
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("输入有误!")