给我一条错误信息:
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)
为什么?
答案 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
方法之前,函数内部的代码才会运行。
这就是您在第一种情况下收到错误消息的原因,而不是第二种情况。