1

代码片段来自 Python Tornado 框架。给定以下定义,如何理解函数调用。

定义:

class Application(object):
    def __init__(self, handlers=None, default_host="", transforms=None, wsgi=False, **settings):
        ...

函数调用:

Application([(r'/user/(.*)', ProfileHandler, dict(database=database)),])
4

1 回答 1

3

让我们一步一步分解:

Application([(r'/user/(.*)', ProfileHandler, dict(database=database)),])- 是一个构造函数调用。

[(r'/user/(.*)', ProfileHandler, dict(database=database)),]- 是名为 的第一个参数handlers

(r'/user/(.*)', ProfileHandler, dict(database=database))- 是特定的处理程序,由以下元组描述:路由正则表达式、处理程序类、处理程序的任何附加选项。

dict(database=database)第一个处理程序(处理程序元组的第三个成员)的附加选项也是如此。似乎指定要使用的数据库。

的结果dict(database=database)将与 相同{'database': database}。您可以将任意关键字参数传递给它来构建您的字典(例如:dict(database=database, hello='world', environment='development', etc='test'),等等)。

dict关键字是一个实际的字典类型名称,所以这是字典构造函数的调用。

于 2013-10-21T04:42:49.577 回答