当前位置: 首页 > 后端技术 > Python

Python函数名的一等对象和

时间:2023-03-25 21:01:55 Python

函数名的一等对象只是一种称谓,是相对于二等对象而言的。到目前为止我们使用的函数基本上都是一等对象。函数名的第一类对象主要有四种应用:函数名可以作为一个值赋给一个变量函数名可以作为另一个函数的参数函数名可以作为返回值另一个函数的函数名可以作为将元素放入容器中例1:deffunc():print(1)a=funcprint(func)#函数的内存地址print(a)a()的输出结果是:1func和a都指向函数的内存地址。当我们调用a时,我们得到与调用func相同的结果。例2:deffunc():print(1)deffoo(a):print(a)foo(func)输出结果为:例3:deffunc():return1deffoo(a):returnacc=foo(func)print(cc)输出结果为:例4:有这样一个需求:用户需要选择对应的序号来选择下一步操作,如选择1会调用Registered函数,option2会调用login函数...以前我们都是通过流程控制语句来实现:'''Python学习交流,免费公开课,免费资料,免费答疑,系统学习加上组:579817333'''deflogin():print("login")defregister():print("register")defshopping():print("shopping")defadd_shopping_car():print("add")defbuy_goods():print("Buy")msg="""1.注册2.登录3.店铺4.添加5.购买请输入您要选择的序号:"""whileTrue:choose=input(msg)ifchoose.isdecimal():ifchoose=="1":register()elifchoose=="2":login()elifchoose=="3":shopping()elifchoose=="4":add_shopping_car()elifchoose=="5":buy_goods()else:print("roll")通过将函数打包成字典,可以大大减少重复代码:deflogin():print("login")defregister():print("register")defshopping():print("shopping")defadd_shopping_car():print("add")defbuy_goods():print("buy")msg="""1。注册2.登录3.购物4.添加5.购买请输入您要选择的序号:"""func_dic={"1":注册,"2":登录,"3":购物,"4":add_shopping_car,"5":buy_goods}whileTrue:choose=input(msg)#"5"ifchooseinfunc_dic:func_dic[choose]()else:print("roll")这种使用字典调用函数的方式是一个非常重要的编程思想,以后会经常用到