0
我要撰寫關於喜歡什麼參數給定函數獲取給定的信息等等。我想這樣做的例子是裝飾:保持狀態
@author("Joey")
@parameter("name", type=str)
@parameter("id", type=int)
@returns("Employee", desc="Returns employee with given details", type="Employee")
def get_employee(name, id):
//
// Some logic to return employee
//
骷髏裝飾的可能如下:
json = {}
def author(author):
def wrapper(func):
def internal(*args, **kwargs):
json["author"] = name
func(args, kwargs)
return internal
return wrapepr
類似地,參數裝飾可以寫成如下:
def parameter(name, type=None):
def wrapper(func):
def internal(*args, **kwargs):
para = {}
para["name"] = name
para["type"] = type
json["parameters"].append = para
func(args, kwargs)
return internal
return wrapepr
同樣,可以編寫其他處理程序。最後,我可以調用一個函數來爲每個函數獲取所有形成的JSON。
末輸出可以
[
{fun_name, "get_employee", author: "Joey", parameters : [{para_name : Name, type: str}, ... ], returns: {type: Employee, desc: "..."}
{fun_name, "search_employee", author: "Bob", parameters : [{para_name : age, type: int}, ... ], returns: {type: Employee, desc: "..."}
...
}
]
我不知道我怎麼能保持狀態,並瞭解鞏固有關一個功能應一起處理數據。
我該如何做到這一點?
當作者'Ganesh'有另一個'func2'時會出現問題。我們需要創建輸出'[{func:'func',作者:'JohanL'},{func:'func2',作者:'Ganesh。}}]' 該方法是否適用於第二個函數? –
這將適用於我的更新示例中顯示的兩個函數。每個人都會有一個獨特的json字典。 – JohanL
感謝您的解釋@JohanL。 是的。這兩個JSON是按照JSON生成的。但最終的輸出是所有這樣的JSON的列表。爲此,我們需要創建另一個裝飾器,對吧?那個裝飾器需要在第一個裝飾器之後才被調用? –