2016-06-01 1 views
2

저는 파이썬 프로젝트에서 일하고 있습니다. 현재는 400 개가 넘는 코드가 있습니다. 한순간에, 나는 주변에 일을 필요로하는 작은 버그에 대해 여러 줄의 주석을 써야했고, 통역관은 문법 오류를 던지기로 결정했다.파이썬 3.x 멀티 라인 주석이 문법 오류를 던졌습니다

통역사에 따르면 구문 오류는 elif에서 발생합니다. 필자의 들여 쓰기를 다시 확인하고 탭을 공백으로 변환했습니다. 아무 것도 작동하지 않습니다.

    if some_condition_1 == True: 
         do_something() 

        """ 
        Sub stage (b): 
        Refer documentation [1.7A] for ... 
        .... 
        .... 
        .... 
        """ 
        elif condition_1 == True: 
         if condition_2 == False: 
          list.append(item) 

그러나 여러 줄 주석을 제거하면 코드가 제대로 실행됩니다.

어떤 아이디어가 잘못 되었나요? 위에서 보여준 코드 샘플은 맨 위 파일의 상단에 있으며 아무데도 잘못 될 가능성은 없습니다.

답변

7

들여 쓰기 오류입니다. "멀티 라인 코멘트"(실제로는 멀티 라인 문자열)는 if 블록 아래에 들여 쓰기되어야합니다.

""" These kinds of things """은 실제로 Python에서는 주석이 아닙니다. 방금 문자열을 만든 다음 값을 버리는 것입니다 (아무 곳에도 저장하지 않음). 파이썬에는 진정한 멀티 라인 주석이 없으므로 많은 사람들이이 방법을 사용합니다. 그러나 참 주석이 아니기 때문에 (통역사가 무시하지 않음) 들여 쓰기 규칙을 포함하여 모든 일반 구문 규칙을 준수해야합니다.

(나는 "문자열을 만드는"말할 때 나는 느슨하게 말할 수있어주의 마십시오. CPython과는, 적어도 여기에 객체를 생성하지 최적화가 있습니다.)

+0

감사 톤. 알았다! –

+0

@PawanKartik 답안 표시 아래의 체크 표시를 눌러 "해결"이라고 표시하십시오. 로봇 청소부가 미쳐 버리는 것을 막아줍니다. :) –

+1

나는했다. 10 분의 제한 시간이있었습니다. 그래서 그 일이 끝나기를 기다리고있었습니다. :) –