小编neR*_*Rok的帖子

使用@view_defaults和@view_config装饰器进行金字塔视图类继承

我编写了一个视图类,它有多个@ view_config,并为单个路由设置了谓词.然后我有一个子类来覆盖一些子函数,这会影响视图的制作方式.下面是类似的,但使用简化的代码.

访问view_a路线时,一切正常.访问view_b路径时,显示"404 Not Founds找不到资源".

似乎@view_configs不是'继承'并且链接到新的@view_default.有没有一种简单的方法来解决这个问题,还是我必须切换到手动操作config.add_view()

@view_defaults(route_name='view_a', renderer='templates/views.mak')
class View_A(object):

    def message(self):
        return 'This is view a'

    @view_config(request_method='GET')
    def get(self):
        return {'message': self.message()}

@view_defaults(route_name='view_b')
class View_B(View_A):

    def message(self):
        return 'This is view b'
Run Code Online (Sandbox Code Playgroud)

pyramid

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

将 @property 装饰器与 @asyncio.coroutine 一起使用而不进行yield from 可能吗?

我想要一个符合以下内容的课程

Foo(object):
    @property
    @asyncio.coroutine
    def bar(self):
        # This will need to run some blocking code via loop.run_in_executor()
        return 'bar'
Run Code Online (Sandbox Code Playgroud)

然后我想访问这些属性而无需yield from

# In a loop...
foo = Foo()
foo.bar    #This will return a generator object, but I want it to return 'bar'.
yield from foo.bar     #This will return 'bar', but I don't want to do the yield from.
Run Code Online (Sandbox Code Playgroud)

这样的事可能吗?

python python-asyncio

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

使用return的利弊(来自some_function()的收益)

我经常看到类似于以下代码的代码(类似于aiohttp文档中的示例).

@asyncio.coroutine
def init(loop):
    srv = yield from loop.create_server(web.Application().make_handler(), '0.0.0.0', 8080)
    return srv
Run Code Online (Sandbox Code Playgroud)

在下面的1行中有没有任何优点/缺点,假设你不想srv在获取它和返回之间对对象做任何事情?

@asyncio.coroutine
def init(loop):
    return (yield from loop.create_server(web.Application().make_handler(), '0.0.0.0', 8080))
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-asyncio

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

标签 统计

python ×2

python-asyncio ×2

pyramid ×1

python-3.x ×1