0

给我一个错误信息:

class logger:
    session = web.ctx.session #this line

没有给我错误消息:

class create:
    def GET(self):
        # loggedout()
        session = web.ctx.session #this line
        form = self.createform()
        return render.create(form)

为什么?

4

2 回答 2

1

web.ctx不能在那个范围内使用。它是一个线程本地对象,web.py在调用之前初始化GET/POST/etc.并在之后被丢弃。

于 2010-09-07T17:21:40.933 回答
0
class logger:
    print('Hi')

打印Hi。类定义下的语句在定义时运行。

像这样的函数定义:

def GET(self):
    # loggedout()
    session = web.ctx.session #this line
    form = self.createform()
    return render.create(form)

也是一种说法。它创建名为 的函数对象GETGET但是函数内部的代码在方法被调用之前不会运行。

这就是为什么您在第一种情况下会收到错误消息,而在第二种情况下不会。

于 2010-09-05T23:43:51.527 回答