为了账号安全,请及时绑定邮箱和手机立即绑定

例子中,关于log装饰器的编写为何要用高阶函数?如下普通函数就能实现啊。

def log(f):

    print 'call '+f.__name__+'()...'

    return f

@log

def factorial(n):

    return reduce(lambda x,y:x*y,range(1,n+1))

print factorial(10)


正在回答

3 回答

我觉得课程里那样写的逻辑是这样的:

首先第一步:定义一个装饰函数log

def log(f):             #引入变量为函数f
    ........
    return fn          #返回一个新函数fn

然后第二步:定义fn,把定义过程放到上面的........中去。

两种写法应该得到的结果是一样的。

0 回复 有任何疑惑可以回复我~

log(f)都调用f了,不就是高阶函数了吗?

0 回复 有任何疑惑可以回复我~

两种方法都可以啊,装饰器本来就有很多种写法

0 回复 有任何疑惑可以回复我~
#1

一曲拂山岗 提问者

既然有简单的,为什么课程里从最初讲解装饰器都是高阶函数呢,感觉是我忽略了什么
2018-01-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255610    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

例子中,关于log装饰器的编写为何要用高阶函数?如下普通函数就能实现啊。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号