Tim*_*ijk 6 python recursion decorator
我正在寻找一个可以使函数递归的Python装饰器.我发现自己写了很多这样的函数:
def xyz(data):
if not isinstance(data, TypeThatDenotesSingularity):
return map(xyz, data)
return singular_xyz(data)
Run Code Online (Sandbox Code Playgroud)
我认为那里必须有一个装饰器(在标准库中?)可以减少一点点的符号:
@recursive(TypeThatDenotesSingularity)
def xyz(data):
return singular_xyz(data)
Run Code Online (Sandbox Code Playgroud)
我一直在寻找,但我似乎无法到达任何地方.也许我错过了一些必要的术语?
谢谢你指点我正确的方向!
我不知道装饰器,但如果你发现自己一遍又一遍地重写相同的模式,你可以用一个类来完成它。
class Recursive(object):
def __init__(self, check_type, singular):
self.check_type = check_type
self.singular = singular
def __call__(self, data):
if not isinstance(data, self.check_type):
return map(self, data)
return self.singular(data)
Run Code Online (Sandbox Code Playgroud)