class Function:
xxx
def __enter__(self):
xxx
return self
def __exit__(self,*args):
pass
func = Function("func)
with func as f:
f.__enter__()
xxx
xxx
f.__exit__()
context manager
需要把这块代码打包成一个block
常用的一个用法是,统计一共有多少个实例
class Node:
def __init__():
self.connections = []
def __enter__():
self.connections.append(sock)
def __exit__():
self.connections.pop()
可以嵌套
class Node:
_collections = None
class Function:
def __init__:
self.body=[]
def __enter__(self):
Node._collection = self.body
return self
def __exit__(self,*args):
Node._collections = None