作者ResolaQQ (ResolaQQ)
看板Python
标题[问题] 如何强制使用 with statement
时间Mon Dec 21 18:14:16 2015
直觉的想法是在 __enter__ 的时候加个变数,执行其他函数的时候检查,像这样
class Test(object):
def __init__(self):
self._with_statement = False
def __enter__(self):
self._with_statement = True
def __exit__(self, type, value, traceback):
pass
def do_something(self):
assert(self._with_statement)
如此一来,如果没用到 with statement,执行任何函数都会出错
但是这写法怎麽看怎麽蠢,也有漏写 assert 的可能
请问有没有比较好的写法,既可以做到使用者防呆也能做到开发者防呆?
--
放着养蚊子的部落格
http://resolaqq.blogspot.tw
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.165.73.83
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1450692859.A.86C.html
1F:推 CaptainH: 我觉得这样挺好的啊 12/21 22:24
2F:→ CaptainH: 另外如果没有assert也不会出错的话,又何必非要逼人用wi 12/21 22:25
3F:→ CaptainH: th? 12/21 22:25