2012-09-11 4 views
-3

파이썬에서 이것을 단순화 할 수 있습니까?무언가 단순화

status = get_git_status() 
for s in ("modified", "deleted", "Untracked files:"): 
    if s in status: 
     pass 
+2

무엇을하려고합니까? 이 코드를 간단하게'status = "foobar"'로 단순화 할 수 있습니다. 왜냐하면 그 코드가 효과 (변수의 설정)를 볼 수있는 유일한 코드이기 때문입니다. –

+0

정말이 코드입니까? 'status in'는'foobar''에서'if "를 수정했을 때처럼'False'를 반환합니다 ... –

+0

상태가 동적으로 할당된다고 가정합니다. 튜플의 항목을 반복하고 동적으로 생성 된 문자열에 있는지 확인하려고합니다. – tipu

답변

1

일치하는 항목마다 작업을 수행해야하는지 또는 일치하는 항목이 있는지 여부에 따라 다릅니다. 그 중 하나가 일치하는 경우, any 사용하여에만 관심이있는 경우 : 모두가 "수정"상태에서 "삭제"하는 경우

if any(s in status for s in ("modified", "deleted", "Untracked files:")): 
    whatever() 
0

을, 당신은 두 번 패스 코드를 실행? 한 번만 실행하면됩니다 :

status_list = ("modified", "deleted", "Untracked files:") 

if any(s in status for s in status_list): 
    pass