我知道
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中,对象被简单地丢弃.