我有三个模块:
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解释器中测试代码并在单独的窗口中进行编辑.每当我对我正在测试的模块进行更改时,我当前需要重新启动python.
有更简单的方法吗?
谢谢,
查理
是否可以从正在运行的Python实例中删除类定义?
我在我的C++中内置了一个Python解释器,我想根据应用程序的当前状态添加和删除类.例如,如果我有一个Menu层次结构,该层次结构具有为该菜单定义的相应类,如果菜单不可见,我想删除该类.
一种可能的解决方案是将类放入模块并卸载该模块(如何卸载(重新加载)Python模块?),但我想知道是否有更简单的方法.
我有这个嵌套列表:
acc = [[3, 0.95804195804195802], [4, 0.965034965034965], [5, 0.97202797202797198], [6, 0.97202797202797198]]
Run Code Online (Sandbox Code Playgroud)
这段代码应该绘制这些值并将 y 轴的边界设置为 95 和 100:
import matplotlib.pyplot as plt
x_ = [x[0] for x in acc]
y_ = [x[1] for x in acc]
plt.figure(figsize=(8,6))
plt.scatter(x_, y_)
plt.ylim((95, 100))
plt.show()
Run Code Online (Sandbox Code Playgroud)
但我收到此错误,我不明白为什么:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-193-5a9016a37585> in <module>()
19 plt.figure(figsize=(8,6))
20 plt.scatter(x_, y_)
---> 21 plt.ylim((95, 98))
22 plt.show()
TypeError: 'float' object is not callable
Run Code Online (Sandbox Code Playgroud)