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) + ' - ')

の場合、短絡して戻ります。そうでない場合yearは、を返します。を使用する必要があります。そうしないと、と型を連結することになります。NoneNonestr(year) + ' - 'str(year)intstr

于 2012-10-07T14:49:12.983 に答える