2013-10-21 89 views
1

代碼片段來自Python Tornado框架。給出以下定義,如何理解函數調用。如何使用下面的代碼示例瞭解python dict

定義:

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

函數調用:

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

回答

2

讓一步打破它一步:

Application([(r'/user/(.*)', ProfileHandler, dict(database=database)),]) - 是一個構造函數調用。

[(r'/user/(.*)', ProfileHandler, dict(database=database)),] - 是名爲handlers的第一個參數。

(r'/user/(.*)', ProfileHandler, dict(database=database)) - 是特定的處理程序,由以下元組描述:route regex,處理程序類,處理程序的任何其他選項。

因此dict(database=database)是第一個處理程序(處理程序元組的第三個成員)的附加選項。它似乎指定要使用的數據庫。

dict(database=database)的結果將與{'database': database}相同。您可以將任意的關鍵字參數傳遞給它以構建您的字典(例如:dict(database=database, hello='world', environment='development', etc='test'),等等)。

dict keyword是一個實際的字典類型名稱,所以這是字典構造函數的調用。