Python,参数数量;类和方法行为

时间:2014-03-11 21:26:09

标签: python google-app-engine

原谅我:我不太了解Python。但是,我精通SML和C.

我正在浏览Udacity教程(https://www.udacity.com/wiki/cs253/unit_2#submitting-input),我看到这行代码:

app = webapp2.WSGIApplication([('/', MainPage)],
                         debug=True)

我查看了webapp2源代码(https://code.google.com/p/webapp-improved/source/browse/webapp2.py)。似乎init方法如下:

def __init__(self, routes=None, debug=False, config=None):
  1. 如何在Udacity代码行中,您可以在没有“config”参数的情况下调用此方法?您是否可以在Python中执行此操作?

  2. 当你说像webapp2.WSGIApplication(...)这样的话 ,它是如何知道实例化WSGIApplication类而不是WSGIApplication方法(如果它也是在webapp2.py中定义的那样)?

3 个答案:

答案 0 :(得分:2)

  1. 如果参数在方法或函数声明中被赋予默认值,则config在此处,它是可选的。调用__init__时的位置参数按先到先得的顺序分配,因此当给出的参数少于两个时,routes得到第一个(在任何中)和debug第二个(如果存在)。

  2. 类和函数存在于模块中的同一名称空间中,因此您不能同时拥有具有相同(完全限定)名称的类和函数。 webapp2.WSGIApplication将引用一个且仅一个对象。

答案 1 :(得分:0)

  1. 您在方法定义中看到的值是参数的默认值。因此,如果省略一个,则取而代之的是默认值。

  2. 什么?你是什​​么意思“实例化类而不是方法”?

答案 2 :(得分:0)

  1. default arguments ...是的,他们是允许的

  2. 它不会知道你想要什么。它可以在文件后面(webapp2)

  3. 中找到