类装饰器实现路由功能:
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/