原谅我:我不太了解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):
如何在Udacity代码行中,您可以在没有“config”参数的情况下调用此方法?您是否可以在Python中执行此操作?
当你说像webapp2.WSGIApplication(...)这样的话 ,它是如何知道实例化WSGIApplication类而不是WSGIApplication方法(如果它也是在webapp2.py中定义的那样)?
答案 0 :(得分:2)
如果参数在方法或函数声明中被赋予默认值,则config
在此处,它是可选的。调用__init__
时的位置参数按先到先得的顺序分配,因此当给出的参数少于两个时,routes
得到第一个(在任何中)和debug
第二个(如果存在)。
类和函数存在于模块中的同一名称空间中,因此您不能同时拥有具有相同(完全限定)名称的类和函数。 webapp2.WSGIApplication
将引用一个且仅一个对象。
答案 1 :(得分:0)
您在方法定义中看到的值是参数的默认值。因此,如果省略一个,则取而代之的是默认值。
什么?你是什么意思“实例化类而不是方法”?
答案 2 :(得分:0)
default arguments ...是的,他们是允许的
它不会知道你想要什么。它可以在文件后面(webapp2)