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

关于python闭包的问题,内部函数可以获取外部函数的变量吗?

关于python闭包的问题,内部函数可以获取外部函数的变量吗?

eveline 2016-01-29 14:19:40
def lazy_sum(*args):     ax = 0     def sum():         for n in args:             ax = ax + n        return ax    return sum      f = lazy_sum(1, 3, 5, 7, 9)print f()为什么这时会报错ax=0未声明,而这样:def test():     x = 1     def child():         print 'x+x=',x+x        return x+x     x = x + child()    return x f = test()print f就没问题呢?刚刚又试了一下,第一段程序改成这样就可以了:def lazy_sum(*args):     ax = 0     def sum():         for n in args:             c = ax + n        return c    return sum f = lazy_sum(1, 3, 5, 7, 9)print f()我在想,是不是内部函数可以获得外部函数的变量,但是却不能修改它?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1395 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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