LocalProxy源码
LocalProxy的源码太长,就不放这儿,实现原理与之前文章模仿LocalProxy的文章
基本是一样,只是LocalProxy更加完善。
LocalProxy使用
# 使用werkzeug的Local
from werkzeug.local import Local,LocalStack, LocalProxy
class Request(object):
def __init__(self):
self.url = 'baidu.com'
class User(object):
def __init__(self):
self.owner = 'www'
r = Request()
u = User()
# 使用Local
l = Local()
l.request = r
l.user = u
# request是LocalProxy对象
request = l('request')
print(request.url)
# 使用LocalStack
ls = LocalStack()
ls.push(r)
# request是LocalProxy对象
request = ls()
print(request.url)
# 显示使用LocalProxy
request = LocalProxy(l, 'request')
print(request.url)
user = LocalProxy(l, 'user')
print(user.owner)
以上代码基本对Local使用进行了介绍,对于整个Local系列来说也就结束了,唯一没有介绍就是Local与线程和协程的配合使用,后续需要用到的时候再介绍。