locals 与 globals 之间有另外一个重要的区别,您应该在它困扰您之前就了解它。它无论如何都会困扰您的,但至少您还会记得曾经学习过它。
例 8.12. locals 是只读的,globals 不是
<span class="pykeyword"> def</span> foo(arg): x = 1 <span class="pykeyword">print</span> locals() <a target=_blank name="dialect.locals.4.1" style="color: rgb(51, 102, 153);"></a><img border="0" alt="1" src="https://i-blog.csdnimg.cn/blog_migrate/8c69ebedc8720acbfd53ad663a447055.png" width="12" height="12" style="border: none; max-width: 100%;" /> locals()[<span class="pystring">"x"</span>] = 2 <a target=_blank name="dialect.locals.4.2" style="color: rgb(51, 102, 153);"></a><img border="0" alt="2" src="https://i-blog.csdnimg.cn/blog_migrate/983b61a62ab5df1c2576c80a8bd7c4c1.png" width="12" height="12" style="border: none; max-width: 100%;" /> <span class="pykeyword">print</span> <span class="pystring">"x="</span>,x <a target=_blank name="dialect.locals.4.3" style="color: rgb(51, 102, 153);"></a><img border="0" alt="3" src="https://i-blog.csdnimg.cn/blog_migrate/724daf9e6f965458d14fa681830b4213.png" width="12" height="12" style="border: none; max-width: 100%;" /> z = 7 <span class="pykeyword">print</span> <span class="pystring">"z="</span>,z foo(3) globals()[<span class="pystring">"z"</span>] = 8 <a target=_blank name="dialect.locals.4.4" style="color: rgb(51, 102, 153);"></a><img border="0" alt="4" src="https://i-blog.csdnimg.cn/blog_migrate/f49ef424350ce80f5ae42bdc7fcedab3.png" width="12" height="12" style="border: none; max-width: 100%;" /><span class="pykeyword"> print</span> <span class="pystring">"z="</span>,z <a target=_blank name="dialect.locals.4.5" style="color: rgb(51, 102, 153);"></a><img border="0" alt="5" src="https://i-blog.csdnimg.cn/blog_migrate/af095673643aee1e92ec28375a01b0ae.png" width="12" height="12" style="border: none; max-width: 100%;" />