我希望通过类上下文管理器来强制实例化对象。因此,直接实例化对象将变得不可能。
我已经实现了这个解决方案,但是从技术上讲,用户仍然可以实例化对象。
有更好的解决方案吗?
我已经实现了这个解决方案,但是从技术上讲,用户仍然可以实例化对象。
class HessioFile:
"""
Represents a pyhessio file instance
"""
def __init__(self, filename=None, from_context_manager=False):
if not from_context_manager:
raise HessioError('HessioFile can be only use with context manager')
同时还有上下文管理器:
@contextmanager
def open(filename):
"""
...
"""
hessfile = HessioFile(filename, from_context_manager=True)
有更好的解决方案吗?