码迷,mamicode.com
首页 > 其他好文 > 详细

上下文管理

时间:2016-07-24 11:57:52      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

1.上下文管理

 

import  contextlib
@contextlib.contextmanager
def work_state(state_list,worker_thread):
    state_list.append(worker_thread)
    try:
        yield
    finally:
        state_list.remove(worker_thread)
free_list=[]
current_thread="alex"
with work_state(free_list,current_thread):
    print(123)
    print(456)

#以下为执行结果:
123
456

 

代码执行步骤

技术分享

 

 

上下文用于需要 close()方法的模块

 

import  contextlib
import  socket

@contextlib.contextmanager
def context_socket(host,port):
    sk=socket.socket()
    sk.bind((host,port))
    sk.listen(5)
    try:
        yield sk
    finally:
        sk.close()
with context_socket(127.0.0.1,8888) as sock:
    print(sock)

#以下为执行结果:
<socket.socket fd=224, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=(127.0.0.1, 8888)>

 

上下文管理

标签:

原文地址:http://www.cnblogs.com/wudalang/p/5700242.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!