1. 程式人生 > >Python 字串內插的實現

Python 字串內插的實現

仿照ruby的樣式,實現了python字串內插.

def fill(s):
    import re
    pattern = re.compile(r'#\{(.*)\}')
    func = lambda s: str(eval(s.groups()[0]))
    return re.sub(pattern, func, s)


haha = 2333
print(fill('#{haha + 1}')) #=>2334
ww = range(5)
print(fill('#{list(map(lambda x:x*3+1,ww))}')) #=>[1, 4, 7, 10, 13]

真實閒得蛋疼.不如直接用ruby.

還有,需要注意的是:eval函式不能執行賦值語句. exec函式只能返回None.