代码中有一部分。
application = webapp2.WSGIApplication([
('/', MainPage),
('/gbook', Guestbook)
])
据我所知,它是一个元组列表:
[('/', MainPage), ('/gbook', Guestbook)]
如果我错了,请纠正我。
我有疑问:MainPage类和Guestbook实例的明显创建在哪里?
类似的东西:x = MainPage('/')
如果这个元组('/', MainPage)
发生了这种情况,那么我的问题是:它是如何发生的?
我需要一些解释。
答案 0 :(得分:3)
WSGIApplication
它自己创建类的实例。在python中,您可以传递类,就像传递类的实例一样。例如:
class A:
def __init__(self):
print "A Created"
def foo(cls):
inst = cls()
foo(A)
如果您运行此脚本,它将打印出“A Created”,因为您正在将类传递给foo
,而{{1}}正在从该类创建一个新实例。
答案 1 :(得分:0)
您可以查看webapp2的源代码来验证这一点。
在__init__
的{{1}}函数中,列表WSGIApplication
将作为变量'[('/', MainPage),('/gbook', Guestbook)]'
传递,然后它们将由routes
类实例化。