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

关于最里面那个 return 的用处

return f(x)        #为了不重写原来的函数f的代码,所以用return f(x)代替原来的代码。 


关于前面同学这个笔记,不是很懂,这个 return 在无参数的情况下不写也是没有关系的,可是有参数的情况下不写就报错了,为什么呢?

外层的函数通过 return 获取到这个函数又没有用,为什么要用 return 呢?  

正在回答

2 回答

你应该是没懂闭包,建议去看下Mooc网上单独的装饰器课程。若看了,则return返回有无参数是与外部函数有关的,强调一下:无参数return返回不能加参数,有参数必须返回参数(就是外部函数的参数数量)。这个函数最终调用的是外部函数也就是作为变量对象在fn函数属性中的。

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

补充说明:

定义decorator
def log(f):        #定义装饰器高阶函数,以要装饰的函数f作为参数
   def fn(x):        #内部相当于重构要装饰的函数f,重命名为fn
       print 'call ' + f.__name__ + '()...'        #加特技print
       return f(x)        #为了不重写原来的函数f的代码,所以用return f(x)代替原来的代码。 
   return fn        将被装饰过的新的函数fn返回 


我说那个 return  就是上面这段的倒数第二句,倒数第一句的 return 我明白就是返回一个新的函数,用来赋值给原先的函数。

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

举报

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

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

进入课程

关于最里面那个 return 的用处

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

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

帮助反馈 APP下载

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

公众号

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