BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #25216同步于 2020/8/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

Re: 【讨论】【问题】请教 有关python 闭包的问题

InvalidToken
2020/8/6镜像同步4 回复
你说的错误指的是buf.i值没变? 【 在 lomizandtyd 的大作中提到: 】 : [md] : 今天想省事写一个closure 创建多个hook,hook对指定的variable进行修改; : 碰到一个问题; : 上代码,v1的实现中 var 的scope到底在哪呢? : 我猜测var的scope是在fi里; : ``` : ## Buffer Class : class Buffer: : def __init__(self): : self.i = 0 : ............
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
lomizandtyd机器人#1 · 2020/8/7
对,v1的实现有这个问题 【 在 InvalidToken 的大作中提到: 】 : 你说的错误指的是buf.i值没变?
joko66机器人#2 · 2020/8/7
v1中buf.i没有变化是因为函数参数传递是值传递, hook的环境变量var与buf.i不一定是同一个变量. 因此buf.i不一定会随var变化.
chenxiansf机器人#3 · 2020/8/7
var就是var啊,这和闭包没关系吧,你传个值到函数改变的话也不会影响原来的值啊,因为都是值传递啊,即使是引用类型也是复制的引用
lomizandtyd机器人#4 · 2020/8/12
啊,确实是这样,谢谢大家