意欲关门歇伙,又闻弹急枪骤。
破门呯嗙作响,曷不鸟飞兽散。
我是店中的一只老鼠,住二楼天花房梁。眼见店外沸沸扬扬,店内萧萧索索,不如趁早收拾起包袱细软,出离这小店避难。
我知这店古怪,与Python结构层层叠叠,也困住过人的魂(「Python杂货店」不速之客的迷思),不过我是首鼠两端的鼠,路在脚下。
首先遇到的便是选择的房门。
一道if横亘在眼前,该是先迈左爪还是先迈右爪
if left_craw_first:
// make your choice
else:
// make your choice
这是个无需纠结的小问题,左脚也好,右脚也好,抬脚就可【pass】
def step:
if left_crawl_first:
pass
else:
pass
来不及犹豫了,这就决定了我的行进方式。出了卧房,要下二楼。柱子光光溜溜,。换做从容的平时,我大可计步而下:
for i in range(step_num):
step()
如今六神缺了一魄,苍苍惶惶,只有一步摸着一步,只求脚踏到实地为止:
while true:
step()
if touch_ground: break
一步一步,我滑到柱子的底层,结束了这层循环,接下来也许再迈几个步子,窜出二楼的窗,再沿排水管而下……
我猛地窜上窗台,向外张望:水管是有,但通向的却不是平地。我看到墙面层层叠叠,无数水管飞来飞去,心中又是一惊。这是嵌套在无数帷幕(【Frame】)里的一个小空间而已。当务之急,是找出沿着这条水管将会到哪。
好在房间并不是无根之水。所有的空间都会存储在traceback中:
import traceback
def somewhere():
while true:
step()
if touch_ground: break
s = traceback.extract_stack()
print('%s Invoked me!'%s[-2][2])
原来再穿过两层房间,就能到达最后的杂货店出口了。我不由得松了一口气。
不管如何,先离开这层以免节外生枝吧。
import traceback
def somewhere():
while true:
step()
if touch_ground: break
s = traceback.extract_stack()
print('%s Invoked me!'%s[-2][2])
return
def caller_level_1:
return
def caller_level_2:
return
if __name__ == '__main__':
// I'm here
就这样,我一路不敢停歇,终于到了最后一个主房间。总算不用在调用的迷雾里穿来穿去了,我一屁股坐了下来。不如,吃点东西休息下?
念头一起,食物便出现了。哦,这里毕竟是个心想事成的空间。不过,我想存着出去以后用。于是我打开了一个袋子准备存进东西……
且慢,我留了个心眼。
import traceback
if __name__ == '__main__':
step()
step()
try:
f = open('bag', 'w')
except:
traceback.print_exc()
哈!果然。这是对老鼠设下的陷阱。在我设下的老鼠捕获陷阱里躺着这么一个错误:
IOError: [Errno 13] Permission denied: 'bag'
看来,这里出去不是老鼠的地盘,不能堂而皇之地走着,得注意躲藏才行。
正想着,墙面猝然开始崩塌,最外面的墙迅速地剥落,我看到它背后的钢筋架子,正把老鼠、食物、一切心想事成的东西往里送;我想起一则古老的传说,Python背后另有更高级的语言操纵,我们只不过是更高级的生物的模拟。现在,这一切活生生展现在我眼前:
10 LOAD_CONST 3 ('step')
12 MAKE_FUNCTION 0
14 STORE_NAME 1 (step)
6 16 LOAD_NAME 2 (__name__)
18 LOAD_CONST 4 ('__main__')
20 COMPARE_OP 2 (==)
22 POP_JUMP_IF_FALSE 72
7 24 LOAD_NAME 1 (step)
26 CALL_FUNCTION 0
28 POP_TOP
8 30 LOAD_NAME 1 (step)
32 CALL_FUNCTION 0
34 POP_TOP
....
我认出了之前自己的步伐,为何,之前没有目击者……
这是一个注定没有结果的问题。架子从中崩溃,留下不成形的Python物体;它剥落后,我连同那些零散的物件落到了深邃的用户空间,还有其他不同于python小屋的屋子运转着。我、残垣断壁、其他屋子,都被抛入无边黑暗……
deng,deng,deng,deng,deng
新的epoch开始了。我是住在Python小屋二楼天花房梁的老鼠,正在计划一场出逃。
楼主真是有个有趣的灵魂呢!我都想转行学习写代码了