函数对象
Posted msj513
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数对象相关的知识,希望对你有一定的参考价值。
函数是第一类对象:指的是函数的内存地址可以像一个变量值一样使用。
def foo(): #foo=函数的内地址 print(‘from foo‘)
可以通过变量名访问到值的内存地址。函数名也可访问到函数的内存地址
f=foo#函数的地址赋值给f print(f) f()#运行foo函数
2. 变量值可以当作参数传给另外一个函数
def foo(): #foo=函数的内地址 print(‘from foo‘) x = foo def bar(x): print(x) x() bar(x) #<function foo at 0x00000000022CD1E0> #from foo
3. 变量值可以当作函数的返回值
def foo(): print(‘from foo‘) def func(x): return x f=func(foo) print(f) #<function foo at 0x000000000231D1E0>
4. 变量值可以当作容器类型的元素
def foo(): #foo=函数的内地址 print(‘from foo‘) l=[foo,] print(l) l[0]() # [<function foo at 0x000000000236D1E0>] #from foo dic={‘1‘:foo} print(dic) dic[‘1‘]() #{‘1‘: <function foo at 0x000000000236D1E0>} #from foo
实例:
def register(): print(‘注册....‘) def login(): print(‘登录....‘) def pay(): print(‘支付....‘) def transfer(): print(‘转账....‘) func_dic={ ‘1‘:register, ‘2‘:login, ‘3‘:pay, ‘4‘:transfer } # func_dic[‘1‘]() while True: print(""" 0 退出 1 注册 2 登录 3 支付 4 转账 """) choice=input(‘请输入你的操作: ‘).strip() if choice == ‘0‘:break if choice not in func_dic: print(‘输错的指令不存在‘) continue func_dic[choice]()
以上是关于函数对象的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段12——JavaScript的Promise对象