我有一个非常奇怪的Python bug,甚至可能是解释器中的bug。
我的最小复制代码看起来有点像:
from sys import stdout
print "Starting"
stdout.flush()
from camera import py_SaperaCamera
print "Imported"
stdout.flush()
cam = py_SaperaCamera.Camera()
print "Constructed"
stdout.flush()
del cam
print "Destructed"
stdout.flush()
我能想到这个程序执行不太顺利的六个原因。事实上,我可以用算法生成那么多!下面提供了一些供您参考,但请跳到要点:
如果执行以某种方式被停止,我真的很喜欢它,也许是一个segfault,一个来自boost的爱的信息::无论什么要求我联系应用程序支持团队,见鬼,即使它只是停止并且什么也没有打印。这将是一个恒星。你知道吗
不。相反,我得到以下输出:
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
细心的读者会注意到,这个程序似乎已经运行了6次,这是野兽的明显标志。所以我的问题很简单,我前世做了什么,值得发生这种事?你知道吗
为什么不注释掉
cam = py_SaperaCamera.Camera()
?然后你就会知道是不是你的相机类的实例化弄乱了smth。这可能会缩小搜索问题的范围。你知道吗相关问题 更多 >
编程相关推荐