我一直在用Python拦截全局赋值:
class MyDict(dict):
def __setitem__(self, k, v):
print "intercepted assignment to ", k
super(MyDict, self).__setitem__(self, k, v)
nsG = MyDict()
exec('a=10', nsG)
这将打印“截获的分配给a”。酷!但是,这在函数中不起作用:
^{pr2}$在这里,对a
的赋值不会被截获(因为默认情况下,函数内的赋值是该函数的局部赋值:a
是f
的局部赋值,因此nsG
不涉及;如果我取消了global a
语句在{
有没有一种方法可以截取函数中的局部赋值?在
目前没有回答
相关问题 更多 >
编程相关推荐