类装饰器实现路由功能:
class Router(object): def __init__(self): self.url_map = {} def register(self, url): def wrapper(func): self.url_map[url] = func return wrapper def call(self, url): func = self.url_map.get(url) if not func: raise ValueError('No url function: %s', url) return func() router = Router() @router.register('/page1') def page1(): return 'this is page1' @router.register('/page2') def page2(): return 'this is page2' print(router.call('/page1')) print(router.call('/page2'))
类装饰器实现简单的函数装饰
class HiDecorate(object): def info(self, func): def wrapper(*args, **kwars): func(*args, **kwars) return wrapper decorate = HiDecorate() @decorate.info def f(): print('Hi Decorate')
原创文章,转载请注明出处:http://124.221.219.47/article/54177/