Python新手:这段代码有什么作用?

Kei*_*Kei 1 python

这是Google AppEngine教程的一个片段.

application = webapp.WSGIApplication([('/', MainPage)], debug=True)
Run Code Online (Sandbox Code Playgroud)

我不太确定debug=True构造函数调用内部是什么.它是否创建一个带有名称的局部变量debug,赋值True给它,并将它传递给构造函数,或者这是一种在构造函数中设置类实例成员变量值的方法吗?

Bli*_*ixt 11

Python函数接受关键字参数.如果你定义一个这样的函数:

def my_func(a, b='abc', c='def'):
    print a, b, c
Run Code Online (Sandbox Code Playgroud)

你可以这样称呼它:

my_func('hello', c='world')
Run Code Online (Sandbox Code Playgroud)

结果将是:

hello abc world
Run Code Online (Sandbox Code Playgroud)

您还可以使用特殊语法支持动态关键字参数:

def my_other_func(a, *b, **c):
    print a, b, c
Run Code Online (Sandbox Code Playgroud)
  • *b表示b变量将a作为tuple对象后面的所有非命名参数.
  • **c表示c变量将所有命名参数作为dict对象.

如果你这样调用函数:

my_other_func('hello', 'world', 'what a', state='fine', what='day')
Run Code Online (Sandbox Code Playgroud)

你会得到:

hello ('world', 'what a') {'state': 'fine', 'what': 'day'}
Run Code Online (Sandbox Code Playgroud)