小编aga*_*and的帖子

lambda函数的范围及其参数?

我需要一个回调函数,对于一系列gui事件几乎完全相同.该函数的行为会略有不同,具体取决于调用它的事件.对我来说似乎是一个简单的案例,但我无法弄清楚lambda函数的这种奇怪的行为.

所以我在下面有以下简化代码:

def callback(msg):
    print msg

#creating a list of function handles with an iterator
funcList=[]
for m in ('do', 're', 'mi'):
    funcList.append(lambda: callback(m))
for f in funcList:
    f()

#create one at a time
funcList=[]
funcList.append(lambda: callback('do'))
funcList.append(lambda: callback('re'))
funcList.append(lambda: callback('mi'))
for f in funcList:
    f()
Run Code Online (Sandbox Code Playgroud)

此代码的输出是:

mi
mi
mi
do
re
mi
Run Code Online (Sandbox Code Playgroud)

我期望:

do
re
mi
do
re
mi
Run Code Online (Sandbox Code Playgroud)

为什么使用迭代器搞砸了?

我尝试过使用深度镜:

import copy
funcList=[]
for m in ('do', 're', 'mi'):
    funcList.append(lambda: callback(copy.deepcopy(m)))
for f in funcList:
    f()
Run Code Online (Sandbox Code Playgroud)

但这也存在同样的问题.

python lexical-closures

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

队列远程调用Python Twisted透视代理?

Twisted(对于python)的强度是它的异步框架(我认为).我写了一个图像处理服务器,通过Perspective Broker接收请求.只要我一次喂它少于几百张图像,它就能很好地工作.然而,有时它几乎同时会被数百张图像加入.因为它尝试同时处理它们所有服务器崩溃.

作为一种解决方案,我想在服务器上排队remote_calls,这样它一次只能处理大约100张图像.看起来这可能是Twisted已经做过的事情,但我似乎无法找到它.关于如何开始实施这个的任何想法?正确方向的一点?谢谢!

python asynchronous twisted

11
推荐指数
1
解决办法
5945
查看次数

为什么numpy masked_array上的sum()操作会将填充值更改为1e20?

这是一个功能还是一个bug?有人可以向我解释这个numpy masked_array的行为吗?它似乎在应用sum操作后更改fill_value,如果您打算使用填充结果,这会令人困惑.

data=ones((5,5))
m=zeros((5,5),dtype=bool)

"""Mask out row 3"""
m[3,:]=True
arr=ma.masked_array(data,mask=m,fill_value=nan)

print arr
print 'Fill value:', arr.fill_value
print arr.filled()


farr=arr.sum(axis=1)
print farr
print 'Fill value:', farr.fill_value
print farr.filled()

"""I was expecting this"""
print nansum(arr.filled(),axis=1)
Run Code Online (Sandbox Code Playgroud)

打印输出:

[[1.0 1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0 1.0]
 [-- -- -- -- --]
 [1.0 1.0 1.0 1.0 1.0]]
Fill value: nan
[[  1.   1.   1.   1.   1.]
 [  1.   1.   1.   1.   1.]
 [  1.   1.   1.   1.   1.] …
Run Code Online (Sandbox Code Playgroud)

python numpy

8
推荐指数
1
解决办法
1016
查看次数

标签 统计

python ×3

asynchronous ×1

lexical-closures ×1

numpy ×1

twisted ×1