2011-12-19 10 views
1

私は質問があります。これは基本的にはPythonテンプレートエンジンの機能に関する質問です。Pythonテンプレートと関数の実行

私は次のコードがあるとします。

import string as st 

def foo(bar): 
    if bar: 
     t = 'world' 
    else: 
     t = 'not happening' 

    return t 

temp = st.Template("hello $bar") 
final = temp.some_substitute_magic() 

、その後

print final 

hello world 

は、いくつかのPythonの魔法でそれをすることが可能です与えるべき?

私は辞書でsafe_substituteを行う方法を知っていますが、すべての識別子(この場合は$ bar)が渡された関数に代入を行う方法を知りたいと思います。テンプレート。

答えて

0

非常に簡単、実際に:)

ちょうど辞書の働きをエミュレートすると完了です。

class Scope(object): 
    def __getitem__(self, key): 
     return 'call for %s' % key 

print final.substitute(Scope()) 
+0

私はPythonが非常にきれいで強力なプログラミング言語であることに気付きました。 –

関連する問題