擅长:python、mysql、java
<p>所以。。。如果你是一个编程新手,你完全不需要考虑垃圾收集。在</p>
<p>首先,您需要知道变量作用域在Python中是如何工作的。基本-在某个块(制表符级别)中声明的变量不会离开该块。模块全局变量是在第一个选项卡级别定义的变量(例如在您的示例中是a)。在模块(文件)之间可以访问的真正的全局变量需要这样声明。还有更多的事情要做,但是不要忘乎所以。阅读这篇文章末尾的链接以获得更详细的信息。在</p>
<p>其次,你开始陷入过早优化的模式。你有没有经历过过度的内存使用导致你的问题?如果是这样的话,那么并且只有在那时,您才需要找出隔离变量作用域的方法(例如,在for循环体中为每次迭代)。在开始担心性能之前,只要让代码做你想做的事情,然后只花时间更改对速度(运行最多的最大循环)或内存(浪费的变量使用)有很大影响的东西。在</p>
<p>第三,垃圾收集与语义无关,变量范围是相关的。Python不擅长管理内存,这正是它的特点。例如,dictionary对象的大小不会减小,即使您填充它并设法删除所有项;此外,当dictionary容器需要增长时,它只会增加一倍(即500M>;1G>;2G)。但不要让它吓到你-它很少是一个真正的问题。在</p>
<p>签出变量作用域上的<a href="http://www.saltycrane.com/blog/2008/01/python-variable-scope-notes/" rel="nofollow">SaltyCrane's blog</a>。在</p>