0

如果变量具有值,我尝试使用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?" - ")

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

4

1 回答 1

1

如何使用 python 表达式and

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

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

于 2012-10-07T14:49:12.983 回答