【问题标题】:Python, Number of Parameters; Class and Method BehaviorPython,参数数量;类和方法行为
【发布时间】:2014-03-11 21:26:09
【问题描述】:

原谅我:我不太了解 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 中定义)?

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:
    1. 如果在方法或函数声明中为参数指定了默认值,如config 在这里,它是可选的。调用__init__ 时的位置参数以先到先得的顺序分配,因此当给出的参数少于两个时,routes 获得第一个(任意),debug 获得第二个(如果存在) .

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

    【讨论】:

    • 谢谢。超级有用
    【解决方案2】:
    1. 它的default arguments ...是的,它们是允许的

    2. 它不知道你想要什么。它会执行文件中后面的那个(webapp2)

    【讨论】:

      【解决方案3】:
      1. 您在方法定义中看到的那些值是参数的默认值。因此,如果您省略了一个,它将采用默认值。

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

      【讨论】:

        猜你喜欢
        • 2017-04-06
        • 2011-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-12
        相关资源
        最近更新 更多