2012-10-07 2 views
0

내가 변수에 값이있는 경우, 다른 확장의 조건 em.py 를 사용하려고 :empy 템플릿을 조건부 확장과 함께 사용하려면 어떻게해야합니까?

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 다른)를, 다음 해 있어야한다 추가 분리 기호 (대시와 함께 공백을 넣으십시오 : "-")를 삽입해야합니다.

그래서 어떤 패턴을 사용해야합니까?

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

하지만 난 그게로 좋아하는은 읽을 수 없습니다 :

나는이 작동하는지 알고 있습니다.

답변

1

어떻게 and를 사용하여 파이썬 표현에 대한 : None, 그 단락과 None를 반환

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

year 경우 그렇지 않으면 str(year) + ' - '를 반환합니다. str(year)을 사용해야합니다. 그렇지 않으면 intstr 유형을 연결해야하기 때문입니다.

관련 문제