Python:正则re.sub实现简易的模板引擎

阅读 45

2022-02-18


代码实现

# -*- coding: utf-8 -*-
import re


class Template(object):
pattern = r"\{(\w+)\}"

def __init__(self, template):
self.template = template
self.re_pattern = re.compile(self.pattern)

def compile(self, **kwargs):
def foo(mo):
return kwargs[mo.group(1)]

return self.re_pattern.sub(foo, self.template)


if __name__ == '__main__':
t = Template('/student/{uid}/{name}')

data = {
"uid": '1',
"name": "Tom"
}

print(t.compile(**data))
# /student/1/Tom



精彩评论(0)

0 0 举报