0
下面是我想要做的具體描述: 我想添加自定義過濾器到jinja2模板渲染引擎。要做到這一點,我需要引用功能,以使事情更通用添加到字典,像添加模塊功能自動爲字典
def my_filter(foo):
do_stuff
return bar
templateEnv.filters['my_filter'] = my_filter
現在,我想有一個文件(filters.py),並自動添加所有自定義過濾器所有這些功能,我的過濾詞典。事情是這樣幼稚的做法:
import filters
for f in all_function_refs_in(filters):
templateEnv.filters[f.name] = f
我已經能夠得到的是一切,我要添加的名稱列表:
[f for f in dir(filters) if not f.startswith('__')]
但是,這僅僅是名稱,而不是參考我想添加的功能。有沒有辦法將字符串轉換回函數引用?我大概可以使用'eval()',但是我仍然必須在導入該函數的同時才能使用它。有人能告訴我如何實現這一目標嗎?