草庐IT

MyContextManager

全部标签

python - 如何检查对象是否使用 `with` 语句创建?

我想确保该类仅在“with”语句中实例化。即这个没问题:withX()asx:...这不是:x=X()我怎样才能确保这样的功能? 最佳答案 据我所知,没有直接的方法。但是,您可以有一个bool标志,以在调用对象中的实际方法之前检查是否调用了__enter__。classMyContextManager(object):def__init__(self):self.__is_context_manager=Falsedef__enter__(self):print"Entered"self.__is_context_manager=T