Python中的异常安全状态是什么?

我知道
Python资源处理的with语句. Python中的异常安全代码有哪些其他问题?

编辑:这里的问题是打开文件等.例如,假设init函数引发异常.初始化对象的状态是什么?

最佳答案

For instance, suppose an init function raises an exception. What is the state of the object being initialized?

暗示.如有疑问,请进行实验.

>>> class Partial( object ):
...     def __init__( self ):
...         self.a= 1
...         raise Exception
...         self.b= 2
... 
>>> p= Partial()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 4, in __init__
Exception
>>> p
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'p' is not defined

声明 – 作为一个整体 – 失败了.对象未创建.变量未分配.
还有其他问题吗?

在C中,事情变得如此复杂.在Python中,对象被简单地丢弃.

点赞