相同的行行为正确或根据文件位置给我一个错误消息

时间:2010-09-05 21:46:10

标签: python web.py

给我一​​条错误信息:

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)

为什么?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

class logger:
    print('Hi')

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

像这样的函数定义:

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

也是一个声明。它创建了名为GET的函数对象。但是在调用GET方法之前,函数内部的代码才会运行。

这就是您在第一种情况下收到错误消息的原因,而不是第二种情况。