如果变量有值,我尝试使用 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?" - ")
但这并不像我喜欢的那样可读。
答案 0 :(得分:1)
使用and
的python表达式如何:
@(year and str(year) + ' - ')
如果year
为None
,则会短路并返回None
,否则会返回str(year) + ' - '
。您需要使用str(year)
,否则您将连接int
和str
类型。