Python 金字塔:如何将一个类的多个方法配置为不同的视图

Python 金字塔:如何将一个类的多个方法配置为不同的视图,python,pyramid,Python,Pyramid,我只是想让它起作用,但它不能: class Test12: def __init__(self, request): self.request = request @view_config(route_name='test1') def test1(self): return Response('I am from test 1') @view_config(route_name='test2') def test2(s

我只是想让它起作用,但它不能:

class Test12:
    def __init__(self, request):
        self.request = request

    @view_config(route_name='test1')
    def test1(self):
        return Response('I am from test 1')

    @view_config(route_name='test2')
    def test2(self):
        return Response('Hi there from test2')


config.add_route('test1', '/test1')
config.add_route('test2', '/test2')

对于URL
/test1
/test2
——返回由
test2()
方法返回的响应。我应该如何让它正常工作?(或者我在这里遗漏了什么?

最可能的问题是您的原始(未粘贴)代码中存在一个缺陷,其中您意外地用相同的名称命名了这两个方法。

-如果您能够提供一个简短、完整的程序来演示您看到的错误,这将有所帮助。我不需要这样做。金字塔程序员将很容易理解这一点。@good_computer,请为单个文件应用程序填写此模板:。当人们看到一个活生生的问题时,他们会更愿意帮助你(即使是非金字塔型的人也能更容易地帮助你)。如果您不在Python3上,则可以使用
python single\u file\u app.py从命令行运行它,然后至少确保您的类继承自
object
。除此之外,粘贴的代码应该可以工作。@MichaelMerickel我在Python 3上,所以我不需要对象。上面的代码不起作用,可能是因为我有两条路径指向同一个类的方法——我想我们只有一个attr参数指定要调用的类的方法。我就在这里?我认为一个类只能用于路由名称(尽管使用不同的谓词,可以有多个类方法响应相同的路由名称)是的,你是对的。它运行。我会看看我做错了什么,把原因贴在这里。同时谢谢。我想可能是ACL/权限相关的问题,或者可能是路由命名错误。但是我还是不明白,那么,attr的作用是什么。它是否只在类上而不是方法上放置装饰器时才有用?是的。在装饰类本身时,可以使用
attr
,以避免它默认为
\uuuuu调用\uuuu