4
我使用Jinja2作爲網站模板引擎,以及我作爲宏實現的模板中使用的所有helper函數,但僅限於一個。這是Python代碼:Jinja2中的Python lambdas
def arrow_class_from_deg(angle):
if angle is None:
return ''
arrow_directions = [
(0, 'n'), (45, 'ne'), (90, 'e'), (135, 'se'), (180, 's'),
(225, 'sw'), (270, 'w'), (315, 'nw'), (360, 'n')
]
return min(arrow_directions, key=lambda (ang, _): abs(ang - angle))[1]
它返回最接近指定角度的箭頭的CSS類。這個函數只能在模板中使用,因此在模板中實現也是有意義的,也就是作爲一個宏。然而,試圖做到這一點,我注意到Jinja2似乎不支持Python lambda。這是真的,如果是的話,那麼如何寫這個函數更好(我希望這裏沒有必要循環)?
所以,這是不可能的在模板中實現? – aplavin 2013-05-05 09:03:06