首页 > 其他 > 详细

上下文管理

时间:2016-07-24 11:57:22      阅读:165      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!