import re
r = re.compile("#{([^}]*)}")
def I(string):
def eval_str_match(m):
return str(eval(m.group(1)))
return r.sub(eval_str_match,string)
*pythonの味/スタイル/標準に加えて
それを一文字のメソッドと呼ぶより良い簡潔な方法はありますか?
正規表現が見逃す可能性のあるものはありますか?
strの代わりにreprを使用する必要がありますか?
evalは危険な場合があることは知っていますが、理由がわかりません
I("#{some_func()}\n")
それより悪い
"%s\n" % str(some_func())