【发布时间】:2010-10-20 01:58:48
【问题描述】:
我明白了引用计数的概念
所以当我执行“del astrd”时,引用计数下降到零并且 astrd 被 gc 收集?
这是示例代码。这些代码是我根据昨天的问题开发的:link text
one.py:
定义 abc():
print "Hello"
print "123"
print '345'
两个.py:
import one
#reload(one)
#def defg():
one.abc()
三个.py:
import os,sys,gc
from time import sleep
import two
#reload(two)
#two.defg()
sleep(20)
directory = os.listdir('.')
for filename in directory:
if filename[-3:] == 'pyc':
print '- ' + filename
print sys.getrefcount(filename)
file_name = os.path.splitext (filename)[0]
del file_name # remove the local reference
del sys.modules[os.path.splitext (filename)[0]] # removes import
gc.collect() # garbage collect
#del sys.modules[filename]
#del filename
#os.remove(filename)
我在 three.py 中所做的是否正确? 有没有不必要的步骤?如果有,为什么?
请帮我解决这个问题。
【问题讨论】: