博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数的对象
阅读量:6496 次
发布时间:2019-06-24

本文共 1564 字,大约阅读时间需要 5 分钟。

# part1 owen_a = 10 # owen_a存放10的地址,所以也是对象,普通的整型对象 # 函数对象:存放函数地址的变量就叫函数对象,就是函数名 def fn():     print(1)     print(2)     print(3)     return 1 print(fn) # 1.函数对象():拿到函数地址并执行 - 函数的调用 # 2.函数调用一定会得到一个结果 - 函数的返回值 - 函数值: res=fn() == 函数调用后res=1 res = fn() print(res) res = 1 print(res) print('------------------------') # part2 # 应用场景: # 1 可以直接被引用 # 2 可以当作函数参数传递 # 3 可以作为函数的返回值 # 4 可以作为容器类型的元素 def fn2():     print('fn2 run') # fn2() aaa = fn2  # 直接赋值 # aaa() def fn22(fn):  # fn = aaa = fn2  # 作为参数     fn() fn22(aaa) def fn222():     # return fn2()     return fn2  # 作为返回值 res = fn222()  # res = fn2() = None  |  res = fn2 = 函数对象 print(res()) ls = [fn2, 10, 20]  # 作为容器对象的成员 print(ls[1]) print(ls[0]()) # 案例: def add(n1, n2):     return n1 + n2 def low(n1, n2):     return n1 - n2 def jump(n1, n2):     return n1 * n2 def computed(n1, n2, fn):     res = fn(n1, n2)     return res method_map = {
'1': add, '2': low, '3': jump } def get_method(cmd): if cmd in method_map: return method_map[cmd] return add while True: cmd = input('cmd: ') res = 0 # if cmd in method_map: # # res = method_map[cmd](10, 20) # fn = get_method(cmd) # res = fn(10, 20) res = get_method(cmd)(10, 20) print(res) # while True: # cmd = input('cmd: ') # res = 0 # if cmd == '1': # res = computed(10, 20, add) # elif cmd == '2': # res = computed(10, 20, low) # elif cmd == '3': # res = computed(10, 20, jump) # print(res)

转载于:https://www.cnblogs.com/qiangyuzhou/p/10787385.html

你可能感兴趣的文章
bzoj 2733 平衡树启发式合并
查看>>
sublime简书安装配置
查看>>
爱上MVC~Web.Config的Debug和Release版本介绍
查看>>
【转】那些年我们一起清除过的浮动
查看>>
python__高级 : 动态添加 对象属性, 类属性, 对象实例方法, 类静态方法, 类方法...
查看>>
【每天一道算法题】时间复杂度为O(n)的排序
查看>>
NLog的介绍使用
查看>>
Haproxy+Rabbitmq中的问题
查看>>
字符串变量小议
查看>>
232. Implement Queue using Stacks
查看>>
Poj(1469),二分图最大匹配
查看>>
和菜鸟一起学linux之V4L2摄像头应用流程【转】
查看>>
spin_lock、spin_lock_irq、spin_lock_irqsave区别【转】
查看>>
删除 mac 垃圾桶内清除不掉的文件
查看>>
【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例
查看>>
/bin/bash^M: bad interpreter: No such file or dire
查看>>
python xml rpc
查看>>
Java设置以及获取JavaBean私有属性进阶
查看>>
db2表结构导出导入,数据库备份
查看>>
策略模式
查看>>