在現在的異常機制處理的比較完善的編碼系統里面,讓計算機完全崩潰無法操作的代碼還是不多的。今天就無意運行到這段python代碼,運行完,計算機直接崩潰,任務管理器都無法調用,任何鍵都用不了,只能強行電源關機。稍微分析了下,應該是list對iterator object處理有漏洞,導致程序無法響應,內存占用迅速暴漲,不過也還是不能解釋為什么終結進程都不行。有沒有人能幫忙回答下原因呢?先謝謝了
這是一段關於yield的代碼:
def yield_2(): a, b = 0, 1 while 1: yield b a, b = b, a+b
定義上面的函數,然后在IDLE里面運行:
>>> n = 10 >>> i = 0 >>> a = yield_2() >>> while i < n: b = next(a) i += 1 >>> print(list(a))
然后計算機就死翹翹了,要實驗的同學請先保存好自己的各種文檔,慎重。其實我也只是想看看list(a)后是個什么結果,按道理應該是[]。求分析。
我的python版本是3.2.3。