【发布时间】:2017-05-08 10:33:02
【问题描述】:
我需要编写有关给定信息的信息,例如给定函数采用什么参数等。我想做的例子是
@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: "..."}
...
}
]
我不确定如何维护状态并知道如何整合有关一个功能的数据应该一起处理。
我怎样才能做到这一点?
【问题讨论】:
标签: python decorator python-decorators