小编wea*_*rog的帖子

Python - 如何使用asyncio同时运行多个协同程序?

我正在使用该websockets库在Python 3.4中创建一个websocket服务器.这是一个简单的echo服务器:

import asyncio
import websockets

@asyncio.coroutine
def connection_handler(websocket, path):
    while True:
        msg = yield from websocket.recv()
        if msg is None:  # connection lost
            break
        yield from websocket.send(msg)

start_server = websockets.serve(connection_handler, 'localhost', 8000)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Run Code Online (Sandbox Code Playgroud)

假设我们 - 另外 - 想要在某些事件发生时向客户端发送消息.为简单起见,让我们每隔60秒定期发送一条消息.我们怎么做?我的意思是,因为connection_handler经常等待收到的消息,服务器只能收到客户端的消息后才采取行动,对吗?我在这里错过了什么?

也许这种情况需要一个基于事件/回调的框架,而不是一个基于协同程序的框架?龙卷风

python websocket python-3.x python-asyncio

24
推荐指数
3
解决办法
2万
查看次数

Matplotlib:用透明颜色填充轮廓图

有人知道 - 在Matplotlib中 - 如何使用半透明颜色生成外观漂亮的填充轮廓图?如果contourf()传递具有半透明颜色的色彩图,则会在填充区域之间产生小间隙:

区域之间的差距很小

根据文档,这不是一个错误(" contourf()[...]不绘制多边形边缘").要绘制边缘,建议"通过调用添加线条轮廓contour()".但是,由于边缘变得太不透明,这看起来并不好看:

边缘太不透明

你可以玩一下这个linewidth论点contour(),但这没什么用.有任何想法吗?

这是重现问题的代码(我使用面向对象的API,但结果是相同的pyplot):

import matplotlib
import numpy as np
from matplotlib.figure import Figure
from matplotlib.backends.backend_agg import FigureCanvasAgg

# generate some data
shape = (100, 100)
x_rng = np.linspace(-1, 1, shape[1])
y_rng = np.linspace(-1, 1, shape[0])
x, y = np.meshgrid(x_rng, y_rng)
z = np.sqrt(x**2 + y**2)

# create figure
width_inch, height_inch = 5, 5  # results in 500x500px with dpi=100
fig = …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

9
推荐指数
1
解决办法
1865
查看次数

Python 中的命名重入/递归锁 (RLock)

Pythonmultiprocessing模块有一个用于可重入/递归锁的类:

from multiprocessing import RLock

l = RLock()
l.acquire()
l.acquire()
l.release()
l.release()
Run Code Online (Sandbox Code Playgroud)

这对于从公共父进程分叉的进程非常有用,因此可以共享相同的RLock对象。但是,对于具有独立进程的情况(例如:Web 服务器 + cron 作业),需要一个命名锁。不幸的是,RLock()不接受锁的名称参数。有没有允许做这样的事情的解决方案?

l = RLock('mylock')
l.acquire()
l.release()
Run Code Online (Sandbox Code Playgroud)

python synchronization locking

5
推荐指数
1
解决办法
646
查看次数