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

闭包有个疑问点,请老师解答一下

函数执行两次,传入不同值自然地址就不一样了,但是两次返回的函数地址都是同样的,那么这个返回后函数得__closure__属性是不是一个同地址的函数就只有一个呢?那么这个属性里面的值在第二次调用函数的时候是不是被修改了?

正在回答

2 回答

你说的是应该是外部函数my_sum作为一个变量写入in_dec函数成为它的属性。每次调用都会先按程序顺序进行判断,到return才是调用外部求和函数,而这个外部函数已经存在in_dec中,会直接取用外部函数的。每次调用的外部函数是不变的(作为元组写在函数里面)-。-

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

并没有被修改,这就相当于换了函数名,可是他们的指向还是原先的函数地址。

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

慕慕5134878 提问者

同一个地址,难道不应该是同一个对象?同一个对象属性难道会不一样么?
2017-05-06 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

闭包有个疑问点,请老师解答一下

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