由于篇幅所限,还有一个重要的知识内容没谈,即“locals() 与 globals() 的读写问题”。之所以说这个问题重要,是因为它可以实现一些灵活的动态赋值的功能。
它们都是字典类型,用法不需多言。...)
----
在工作中, 有时候会遇到一种情况: 动态地进行变量赋值 , 不管是局部变量还是全局变量, 在我们绞尽脑汁的时候, Python已经为我们解决了这个问题....于是, 我们也就能通过这些方法去实现我们"动态赋值"的需求...., 实际是就是帧对象的f的成员f_localsplus, 这是一个数组, 了解函数创建的童鞋可能会比较清楚, 在CALL_FUNCTION时, 会对这个数组进行初始化, 将形参赋值什么都会按序塞进去,...这也就是为什么, 当我们通过locals()[i] = 1的方式去动态赋值时, print a却触发了NameError异常, 而相反的, globals()确实真正的全局命名空间, 所以一般会说:
locals