小编Pau*_*aul的帖子

如何覆盖python app引擎模型上的put()方法?

在Appengine中,我试图自动计算属性值并与对象一起存储.

我有一个类,矩形,它有宽度,高度和面积.显然该区域是宽度和高度的函数,但我希望它是一个属性,因为我想用它来进行排序.所以我尝试修改put()函数以在存储Rectangle时隐藏该区域,如下所示:

class Rectangle(db.Model):
    width   = db.IntegerProperty()
    height  = db.IntegerProperty()
    area    = db.IntegerProperty()

    def put(self, **kwargs):
        self.area = self.width * self.height
        super(Rectangle, self).put(**kwargs)
Run Code Online (Sandbox Code Playgroud)

这在我put()直接调用Area对象时有效:

re1 = Rectangle(width=10, height=10)
re1.put()
print re1.area      # >> 10
Run Code Online (Sandbox Code Playgroud)

但是当我使用db.put()(例如一次性保存很多)时,这会中断.

re2 = Rectangle(width=5, height=5)
db.put(re2)
print re2.area      # >> None
Run Code Online (Sandbox Code Playgroud)

"偷偷摸摸"计算值的正确方法是什么?

python google-app-engine

6
推荐指数
1
解决办法
606
查看次数

如何在 Eclipse 中为启动新项目时创建的文件将 C++ 文件扩展名设置为 .cc?

默认情况下,Eclipse (CDT) 对 C++ 文件使用 .cpp 文件扩展名。我希望它使用 .cc(和 .hh)扩展名,但我在任何地方都找不到这样的选项。

编辑:准确地说,当我开始一个新的 C++ 项目时,它会创建一个 .cpp 文件。可以将此行为更改为创建 .cc 文件吗?

我本来希望它在 Window > Options > C/C++ > File Types 下,但据我所知,这没有帮助。我在 Google 上搜索过,我找到的唯一页面解释了如何在 Netbeans 中执行此操作。任何帮助是极大的赞赏!

c++ eclipse file-type eclipse-cdt

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

AppEngine:切换到Python 2.7

出于多种原因,我想继续并切换到Python 2.7.新的python版本需要使用High Replication数据存储区.据我所知,转换到它是不可能的:唯一的方法是创建一个新的应用程序,使用新的ID,并复制数据存储区.更改我的应用ID是我不热衷的事情.

有没有办法改变App ID?或者是在不久的将来预期的解决方法?2.7版本最终会支持主/从数据存储吗?我想并非所有的AppEngine用户都会愉快地改变他们的身份......

python google-app-engine

4
推荐指数
1
解决办法
836
查看次数

使用零初始化javascript数组

我正在测试使用零初始化大型javascript数组的不同方法.到目前为止,使用push(0)的简单for循环似乎远远超过其他方法(参见http://jsperf.com/initialise-array-with-zeros),但我对此有效性表示怀疑测试.

在实践中,您只需创建一个这样的大型数组并对其进行缓存,以便稍后当您再次需要大型初始化数组时,您可以简单地对其进行切片.因此,我认为最重要的评估是第一次执行此代码所需的时间,而不是许多试验的平均值.

有人不同意吗?或者有人知道我如何/在哪里测试一轮的时间?

编辑:为了回应关于分配具有如此多零的数组的基本原理的一些误解,我想澄清两件事.

  1. 没有稀疏性.我需要创建多个大型数组并将它们用于计算.这些副本将填充浮点数,浮点数恰好为零的可能性可以忽略不计.
  2. 并非所有计算都是按顺序在阵列上执行的.我相信,与覆盖通过引用传递的数组中的值相比,在进程中生成数组的函数效率低(参见例如gl-matrix.js).

因此,我的解决方案是创建一个大型零填充数组,然后在需要新数组时获取slice(),然后通过引用将该副本传递给任何函数以使用它.在任何浏览器中,Slice都是超级超级快速的.

现在,虽然您可能仍然担心我为什么要这样做,但我真正感兴趣的是,如果可以在第一次运行时评估不同初始化方法的性能.我希望有这个时间,因为在我的情况下,我肯定只运行一次.

是的,我的jsperf代码可能会错过一些解决方案.所以如果你有一个我没有想到的方法,请随意添加它!谢谢!

javascript optimization performance

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