小编Att*_* O.的帖子

Python timeit不工作?

有人可以解释一下为什么会这样吗?

aatiis@aiur ~ $ time python /usr/lib64/python2.7/timeit.py -n 1 \
    -- 'x = 10**1000'
1 loops, best of 3: 0.954 usec per loop

real    0m0.055s
user    0m0.050s
sys     0m0.000s

aatiis@aiur ~ $ time python /usr/lib64/python2.7/timeit.py -n 1 \
    -- 'x = 10**100000'
1 loops, best of 3: 0.954 usec per loop

real    0m0.067s
user    0m0.040s
sys     0m0.020s

aatiis@aiur ~ $ time python /usr/lib64/python2.7/timeit.py -n 1 \
    -- 'x = 10**10000000'
1 loops, best of 3: 0.954 usec per loop

real …
Run Code Online (Sandbox Code Playgroud)

python profiling

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

App Engine多个名称空间

最近我们的应用程序中发生了一些数据结构更改,我们决定使用命名空间来分隔不同版本的数据,并使用mapreduce任务将旧实体转换为新格式.

现在一切都很好,但我们不想总是隔离我们拥有的整个数据集.我们数据的最大部分存储在一种非常简单且不需要经常更改的类型中.所以我们决定使用per-kind命名空间.

就像是:

class Author(ndb.model.Model):
    ns = '2'

class Book(ndb.model.Model):
    ns = '1'
Run Code Online (Sandbox Code Playgroud)

因此,在迁移到版本2时,我们不需要转换所有数据(并将所有'Book'类型复制到另一个命名空间),只需要'Author'类型的实体.然后,appengine_config.namespace_manager_default_namespace_for_request我们只是查询的'namespace'关键字参数,而不是定义它:

Author.query(namespace=Author.ns).get()
Run Code Online (Sandbox Code Playgroud)

问题:如何put()使用这些不同的命名空间存储(即)不同种类?就像是:

# Not an API
Author().put(namespace=Author.ns)
Run Code Online (Sandbox Code Playgroud)

当然,上述方法不起作用.(是的,我可以向数据存储区询问该命名空间中的可用密钥,然后使用该密钥来存储实例,但这是我想要避免的额外API调用.)

google-app-engine google-cloud-datastore

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

App Engine ndb按键并行获取

我正在使用他们的密钥检索一批项目,如下所示:

from google.appengine.ext.ndb import model

# …
keys = [model.Key('Card', id, namespace=ns) id in ids]
cards = yield model.get_multi_async(keys)
Run Code Online (Sandbox Code Playgroud)

在appstats中的结果是这样的:

appstats截图

反向瀑布似乎是由并行逐个发送的密钥引起的,每个密钥都在自己的RPC中.

我的问题是,有没有办法通过单个RPC调用按键检索多个对象?(假设这会加快应用程序的整体响应时间).

google-app-engine app-engine-ndb google-cloud-datastore

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

在Python中迭代N维

我有一张地图,我们称之为M,其中包含通过N维映射的数据.

# If it was a 2d map, I could iterate it thusly:
start, size = (10, 10), (3, 3)
for x in range(start[0], start[0]+size[0]):
    for y in range(start[1], start[1]+size[1]):
        M.get((x, y))
# A 3d map would add a for z in ... and access it thusly
M.get((x, y, z))
# And so on.
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何创建一个可以产生正确迭代序列的迭代器?也就是说,鉴于start, size = (10, 10), (3, 3)它会产生2元组序列(10, 10), (10, 11), (10, 12), (11, 10), (11, 11)等.并且鉴于start, size = (10, 10, 10), …

python iteration recursion

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

参考自动实例化的Sencha Touch 2视图

我想从我的Sencha Touch 2控制器中获取我的视图参考,它看起来像这样(CoffeeScript):

Ext.define 'MyApp.view.Books',
    extend: 'Ext.Panel'
    id: 'books'
    config:
        html: 'Hello, Books!'
Ext.define 'MyApp.controller.Books',
    extend: 'Ext.app.Controller'
    views: [
        'Books'
    ]
    init: ->
        @control
            '#books':
                render: ->
                    console.log 'This is never called. Why?'
                show: ->
                    console.log 'This is called twice.'
                    # @getBooksView() is not a view instance, it is a class. Why?
                    console.log 'View class: ' + @getBooksView()?.$isClass
Ext.application
    name: 'MyApp'
    controllers: [
        'Books'
    ]
    launch: ->
        Ext.Viewport.setActiveItem
            xtype: 'booksview'
Run Code Online (Sandbox Code Playgroud)

出现"Hello,Books"内容(例如,呈现组件),但甚至从不调用呈现控件处理程序.我在这做错了什么?

extjs sencha-touch extjs-mvc

0
推荐指数
1
解决办法
2481
查看次数