Python:创建类实例

时间:2014-10-21 14:04:57

标签: python python-2.7 webapp2

代码中有一部分。

application = webapp2.WSGIApplication([
    ('/', MainPage),
    ('/gbook', Guestbook)
])

据我所知,它是一个元组列表:

[('/', MainPage), ('/gbook', Guestbook)]

如果我错了,请纠正我。

我有疑问:MainPage类和Guestbook实例的明显创建在哪里?

类似的东西:x = MainPage('/')

如果这个元组('/', MainPage)发生了这种情况,那么我的问题是:它是如何发生的?

我需要一些解释。

2 个答案:

答案 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类实例化。