当我输入:
>>> astrd = 123
>>> import sys
>>> sys.getrefcount(astrd)
3
>>>
Run Code Online (Sandbox Code Playgroud)
我没有得到astrd3次使用的地方?
我有三个模块:
one.py:
def abc():
print "Heeeeeeeeeeeiiiiiioooooooooo"
Run Code Online (Sandbox Code Playgroud)
two.py:
import one
def defg():
one.abc()
Run Code Online (Sandbox Code Playgroud)
three.py:
import os
from time import sleep
import two
two.defg()
sleep(20)
directory = os.listdir('.')
for filename in directory:
if filename[-3:] == 'pyc':
print '- ' + filename
os.remove(filename)
Run Code Online (Sandbox Code Playgroud)
我有三个疑问.请帮助我.
当我three.py第一次跑one.pyc,two.pyc并将被创建.我可以看到它,因为我延迟了20秒.执行该语句后os.remove(filename),它们将被删除.直到这里它的罚款.
再次没有关闭IDLE以及我运行的脚本three.py.这次没有.pyc创建文件.为什么会这样?
如果我关闭IDLE以及脚本,.pyc将像以前一样创建.
为什么编译后的代码没有再次创建和agin?
此外,如果我进行更改,one.py如果我在没有关闭shell的情况下运行它将不会显示.我也需要一个解决方案.
第三个疑问是,如果编译的代码第一次被删除,那么第二次运行如何在没有的情况下得到相同的结果.pyc?
希望找到解决方案......