小编Dew*_*wfy的帖子

在Python中重置生成器对象

我有多个yield返回的生成器对象.准备调用这台发电机是相当费时的操作.这就是我想多次重用发生器的原因.

y = FunctionWithYield()
for x in y: print(x)
#here must be something to reset 'y'
for x in y: print(x)
Run Code Online (Sandbox Code Playgroud)

当然,我正在考虑将内容复制到简单的列表中.

python yield generator

133
推荐指数
8
解决办法
6万
查看次数

为什么Python 3需要用list()包装dict.items?

我正在使用Python 3.我刚刚安装了一个Python IDE,我对以下代码警告感到好奇:

features = { ... }
for k, v in features.items():
    print("%s=%s" % (k, v))
Run Code Online (Sandbox Code Playgroud)

警告是:"对于Python3支持应该看起来像...... list(features.items())"

http://docs.python.org/2/library/2to3.html#fixers上也提到了这一点

它还在对列表的调用中包含了dict.items(),dict.keys()和dict.values()的现有用法.

为什么这有必要?

python python-2to3 python-3.x

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

boost-python在重载方法之间进行选择

假设存在一些具有两个重载方法的类Foo:

class Foo
{
  ...
   void m1(A& a);
   void m1(B& b);
Run Code Online (Sandbox Code Playgroud)

我需要在boost-python上公开这些方法之一:

boost::python::class_<Foo>("Foo")
    .def("m1", &Foo::m1)
Run Code Online (Sandbox Code Playgroud)

我应该如何指定m1(A&a)应该使用的签名m1(B&b)

c++ python boost

20
推荐指数
4
解决办法
5474
查看次数

java Lambda与Anonymous类之间的执行时间差异很大

我很好奇在同一个匿名类中创建java8 lambda实例的性能.(在win32 java build 1.8.0-ea-b106上执行测量).我创建了一个非常简单的示例,并测量了java是否new在创建lambda表达式时提出了一些运算符优化:

static final int MEASURES = 1000000;
static interface ICallback{
    void payload(int[] a);
}
/**
* force creation of anonymous class many times
*/
static void measureAnonymousClass(){
    final int arr[] = {0};
    for(int i = 0; i < MEASURES; ++i){
        ICallback clb = new ICallback() {
            @Override
            public void payload(int[] a) {
                a[0]++;
            }
        };
        clb.payload(arr);
    }
}
/**
* force creation of lambda many times 
*/
static void measureLambda(){ 
    final int arr[] = …
Run Code Online (Sandbox Code Playgroud)

java performance lambda closures java-8

18
推荐指数
1
解决办法
1万
查看次数

MongoDB查询具有null值

我的收藏(MongoDB v 2.0.2)有以下记录:

db.organization.find({})
{ "_id" : 1001, "path" : [ ], "parent" : null }
{ "_id" : 1002, "path" : [ 1001 ], "parent" : NumberLong(1001) }
Run Code Online (Sandbox Code Playgroud)

organization 有索引:

db.organization.ensureIndex({"path":1});
db.organization.ensureIndex({"parent":1},{sparse:false});
Run Code Online (Sandbox Code Playgroud)

(注意我把awarnes sparse : false- 授予null索引)但是,执行:

db.organization.find({"parent":null})
Run Code Online (Sandbox Code Playgroud)

返回空集.怎么了?先感谢您

null mongodb

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

Python 3.1中的GIL

有没有人知道Python 3.1中针对C++多线程集成的Global Interpreter Lock的命运

python multithreading gil

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

pymongo默认数据库连接

我需要从我的Python代码连接到MongoDB,我唯一拥有的是一个url.每个mongo URL doc我可以指定数据库名称:

mongodb://host/db_name
Run Code Online (Sandbox Code Playgroud)

现在我想使用从URL指定的数据库,并且不想手动解析它以提取数据库的名称.但MongoClient没有访问默认界面的界面.有什么想法如何管理?

python mongodb pymongo

13
推荐指数
1
解决办法
5850
查看次数

是不是已经死了?

到目前为止,我的项目推迟了与Python集成C++的解决方案.但现在再次提出这个问题.有人知道项目的状态吗?在Google上:( http://code.google.com/p/unladen-swallow)根本没有实际信息.我们能算一下这个项目吗?

python unladen-swallow

12
推荐指数
1
解决办法
5280
查看次数

改进了MongoDB中存在的查询字段

我正在为我们的客户估算MongoDB.根据需求,我们需要与一些实体ent变量名称 - 值对集合相关联.

db.ent.insert({'a':5775, 'b':'b1'})
db.ent.insert({'c':'its a c', 'b':'b2'})
db.ent.insert({'a':7557, 'c':'its a c'})
Run Code Online (Sandbox Code Playgroud)

在此之后,我需要密集查询ent字段的存在:

db.ent.find({'a':{$exists:true}})
db.ent.find({'c':{$exists:false}})
Run Code Online (Sandbox Code Playgroud)

每个MongoDB 文档:

即使使用索引,$ exists也不是非常有效,尤其是.使用{$ exists:true},因为它实际上必须扫描所有索引值.

那里的专家可以提供更有效的方式(即使转换范式)来快速处理不同的名称 - 值对

indexing name-value mongodb

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

angular指令处理http请求

我有角度指令,接受url获取远程数据:

<my-tag src="http://127.0.0.1/srv1">...
Run Code Online (Sandbox Code Playgroud)

指令本身:

app.directive('myTag', ['$http', function($http) {
return {
    restrict: 'E',
    transclude: true,
    replace: true,  
    //template: '<div ng-repeat="imgres in gallery">{{imgres.isUrl}}\'/></div>',
    scope:{
        src:"@",            //source AJAX url to dir pictures
    },
    controller:function($scope){
        console.info("enter directive controller");
        $scope.gallery = [];
        $http.get($scope.src).success(function(data){
           console.info("got data");
           $scope.gallery.length = 0;
           $scope.gallery = data;
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

一般来说它可以工作,我可以在FireBug控制台中看到:

enter directive controller
GET http://127.0.0.1/srv1
got data
Run Code Online (Sandbox Code Playgroud)

但是,如果我将指令的第二个实例绑定到另一个url:

<my-tag src="http://127.0.0.1/srv2">...
Run Code Online (Sandbox Code Playgroud)

仅适用于以下日志:

enter directive controller
GET http://127.0.0.1/srv1
enter directive controller
GET http://127.0.0.1/srv2
got data             <-- as usual it relates to first …
Run Code Online (Sandbox Code Playgroud)

directive http angularjs

10
推荐指数
1
解决办法
2万
查看次数