相关疑难解决方法(0)

来自sys.getrefcount的意外结果

当我输入:

>>> astrd = 123
>>> import sys
>>> sys.getrefcount(astrd)
3
>>> 
Run Code Online (Sandbox Code Playgroud)

我没有得到astrd3次使用的地方?

python garbage-collection

5
推荐指数
4
解决办法
1146
查看次数

删除*.pyc

我有三个模块:

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

希望找到解决方案......

python caching

1
推荐指数
1
解决办法
2188
查看次数

标签 统计

python ×2

caching ×1

garbage-collection ×1