2012-09-27 5 views
0

나는 초보자는 파이썬이고 내가 ('#')를 다음 코드의 마지막 두 줄 주석 때 나는 들여 쓰기 오류 메시지가 :들여 쓰기 문제 파이썬

try: 
     return get_callable(callback), {} 
# except (ImportError, AttributeError), e: 
#  raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st r(e))) 

아무도 도와 줄 수 있습니까?

+1

무엇이 오류 메시지입니까? –

+0

@Acorn : 죄송합니다. 코드도 편집하고있었습니다. 그런데 내가 왜 투표에 실패 했는가? – user1611830

+0

try 블록은 다음으로 끝내야 만합니다. – voscausa

답변

5

try/except을 주석의 try 앞에 배치 if True: # : 이것은 정확한 구문하게

if True: #try: 
     return get_callable(callback), {} 
# except (ImportError, AttributeError), e: 
#  raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st r(e))) 

을 이너 블록을 디 덴트 않고도.

# try: 
    return get_callable(callback), {} 
# except (ImportError, AttributeError), e: 
#  raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st r(e))) 
:

try: 
     return get_callable(callback), {} 
# except (ImportError, AttributeError), e: 
#  raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st r(e))) 
    finally: 
     pass 

귀하의 유일한 옵션뿐만 아니라 try: 줄을 주석으로하는 것입니다, 이 블록의 들여 쓰기를 제거 : 당신은 또한 except 주석 후 finally: pass 블록을 추가 할 수 있습니다

except 또는 finally 블록을 사용하지 않고 베어 try:을 제자리에 두어 둘 수 없습니다.

+0

OK, 많이 감사합니다! – user1611830

4

코드가 더 이상 구문 상 유효하지 않습니다. except 절은 try 절의 필수 동반자입니다.

+0

오, 알았어요. 파이썬에서 아무것도 모르겠어요. 어떻게 'null code'를 넣을 수 있나요? 절, 그래서 그것은 코드의 실행에 영향을 미치지 않습니다? – user1611830

+0

@ user1611830 무슨 뜻인지 모르겠군요. 예외가 여전히 잡히지 만 해당 이벤트에서 아무 작업도 수행하지 않겠습니까? 아니면 해당 절이없는 것처럼 예외가 전파되도록 하시겠습니까? – Marcin

+0

두 번째 사례가 방금 응답되었습니다. 감사합니다! – user1611830

2

except 문장이 없으면 python은 except 문을 찾고 대신 줄이 보이지 않는 줄을 봅니다.

"왜 들여 쓰기 오류입니까? 그냥 들여 쓰기와 관련이없는 except이 누락되었습니다."라고 생각할 수도 있습니다. " 그 이유는 파이썬이 try: 다음에 들여 쓰기가없는 줄을 "보고"있으며 그 내용이 try 안에 들여 쓰기되기를 기대하기 때문입니다.