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

这里为什么要用闭包呢?

这里为什么要用闭包呢?改成一个两个参数的函数不也可以解决这个问题么?

http://img1.sycdn.imooc.com//5985a4b20001482f08640476.jpg

正在回答

1 回答

因为分数线不同,要编写不同的set_passline函数,但是各个set_passline()中用于判断是否及格的cmp()函数是一样的代码。用了闭包,也就是节省了编写比较函数cmp()的代码。也就是重用了cmp()比较函数的代码。至于你说的两个参数,是那么第二个参数传进来也要在比较时多写基于第二个参数的代码(在此琢磨一下),当n多个参数就写重复的n多次

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

神爵 提问者

def com(passline, val): if val >= passline: print('Pass') else: print('Failed') 函数如果写成这样,直接调用就好了,比如com(90, 89)。不用多写其他代码啊,用闭包有点牵强吧0.0
2017-08-06 回复 有任何疑惑可以回复我~
#2

狗不理运维 回复 神爵 提问者

我也是有这个疑问特地上来。感觉这样不是代码量更少,维护更简单,逻辑更清晰么。为什么要用闭包?闭包这样写后,还要实例化两个对象,内存占用不是更多么。
2018-09-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python装饰器
  • 参与学习       50155    人
  • 解答问题       50    个

本门python教程将代领大家轻松搞定Python装饰器运用

进入课程

这里为什么要用闭包呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信