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的列表。为此,我们需要创建另一个装饰器,对吧?那个装饰器需要在第一个装饰器之后才被调用? –