0
在查看python 3.5的新功能時,我發現PEP 0479。在它的基本原理中,它提供了一個使用@ contextlib.contextmanager的例子。我看着這個裝飾的來源,發現其出口方法傳來的例外在它的發電機被拋出:爲什麼@ contextmanager的__exit__句柄在異常中傳遞?
self.gen.throw(type, value, traceback)
我不知道爲什麼在與塊引發的異常應在此發電機內部傳遞。我認爲正確的方法是關閉生成器並讓異常傳播。
這是合理的。但我仍然認爲PEP0479在發電機內改變StopIteration爲RuntimeError的方式有點奇怪。我想我最好更多地學習編程語言設計。 –