我有一个非常奇怪的 Python 错误,甚至可能是解释器中的错误。
我的最小复制代码看起来有点像以下:
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()
我可以想到大约 1e6 个原因,这个程序的执行可能不会那么顺利。事实上,我可以通过算法生成那么多!下面提供了一些供您娱乐,但请随意跳到妙语:
- 在导入我的自定义 Cython 模块 py_SaperaCamera
- 由于初始化或删除控制我的设备的对象
- 段错误、内存错误、因调皮而被操作系统杀死
- 闪电,停电,第二次来临。任何!
如果执行以某种方式停止,我真的会喜欢它,也许是一个段错误,来自 boost:: 的一个充满爱的信息,无论要求我联系应用程序支持团队,地狱,即使它只是停止并且什么也没打印。这将是一流的。
不,相反,我得到以下输出:
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
细心的读者会注意到,该程序似乎已经运行了 6 次,这是野兽的明显标记。所以我的问题很简单,我在前世做了什么让这件事发生?