代码片段来自Python Tornado框架。鉴于以下定义,如何理解函数调用。
定义:
class Application(object):
def __init__(self, handlers=None, default_host="", transforms=None, wsgi=False, **settings):
...
函数调用:
Application([(r'/user/(.*)', ProfileHandler, dict(database=database)),])
答案 0 :(得分:3)
让我们一步一步地分解它:
Application([(r'/user/(.*)', ProfileHandler, dict(database=database)),])
- 是一个构造函数调用。
[(r'/user/(.*)', ProfileHandler, dict(database=database)),]
- 是第一个名为handlers
的参数。
(r'/user/(.*)', ProfileHandler, dict(database=database))
- 是特定的处理程序,由以下元组描述:route regex,handler class,handler的任何其他选项。
所以dict(database=database)
是第一个处理程序(处理程序元组的第3个成员)的附加选项。它似乎指定了要使用的数据库。
dict(database=database)
的结果与{'database': database}
的结果相同。您可以向其传递任意关键字参数来构建字典(例如:dict(database=database, hello='world', environment='development', etc='test')
,等等)。
dict
关键字是一个实际的字典类型名称,因此这是字典构造函数的调用。