如何使用带有条件扩展的空模板?

时间:2012-10-07 14:37:32

标签: python templates empy

如果变量有值,我尝试使用 em.py 的条件来扩展不同的值:

import em

d1={"year":2012, "title":"abc"}
d2={"year":None, "title":"abc"}

p="@(year?year)@title" # the pattern
#p="@(year?year - )@title" # this does not work

print em.expand(p, d1)
print em.expand(p, d2)

# I would like to have it expanded into: "2012 - abc" for d1 and "abc" for d2

因此,如果设置了年份(与None不同),那么应该在年份中添加一个额外的分隔符(我使用带有空格的破折号:“ - ”)也应插入。< / p>

那么:我应该使用什么模式?

我知道这有效:

@(year?year)@(year?" - ")

但这并不像我喜欢的那样可读。

1 个答案:

答案 0 :(得分:1)

使用and的python表达式如何:

@(year and str(year) + ' - ')

如果yearNone,则会短路并返回None,否则会返回str(year) + ' - '。您需要使用str(year),否则您将连接intstr类型。