[python] 파이썬에서 여러 줄 주석을 만드는 방법이 있습니까?

최근 Python 공부를 시작 했지만 여러 줄 주석을 구현하는 방법을 찾을 수 없습니다. 대부분의 언어에는 다음과 같은 블록 주석 기호가 있습니다.

/*

*/

파이썬에서 이것을 시도했지만 오류가 발생하므로 아마도 올바른 방법이 아닙니다. 파이썬에는 실제로 여러 줄 주석 기능이 있습니까?



답변

삼중 인용 문자열을 사용할 수 있습니다. 그것들이 docstring이 아닌 경우 (클래스 / 함수 / 모듈의 첫 번째) 무시됩니다.

'''
This is a multiline
comment.
'''

( '''을 피하기 위해 행간을 적절히 들여 쓰십시오 IndentationError.)

귀도 반 로섬 (파이썬의 제작자) 은 이것을 “프로 팁”으로 트윗했습니다 .

그러나 파이썬의 스타일 가이드 PEP8 은 연속적인 한 줄 주석 사용을 선호하며 많은 프로젝트에서 찾을 수 있습니다. 텍스트 편집기에는 일반적으로이 작업을 쉽게 수행 할 수있는 바로 가기가 있습니다.


답변

파이썬은 가지고 여러 문자열 / 주석 구문 문서화 문자열로 사용하지 않는 것을 의미에서를 여러 줄 문자열이 더 바이트 코드를 생성하지 것처럼 – #-prepended 의견. 실제로 주석처럼 작동합니다.

반면, 공식 문서에이 동작이 실제 주석 구문이되도록 문서화되어야한다고 말하면 언어 사양의 일부로 보장되지 않는다고 말할 수 있습니다.

어쨌든, 텍스트 편집기는 선택한 영역을 쉽게 주석 처리 할 수 ​​있어야합니다 ( #각 줄 앞에 개별적 으로 배치 ). 그렇지 않으면 텍스트 편집기로 전환하십시오.

특정 텍스트 편집 기능이없는 파이썬 프로그래밍은 힘든 경험이 될 수 있습니다. 올바른 편집기를 찾고 사용법을 알고 있으면 Python 프로그래밍 경험을 인식하는 방법에 큰 차이가 생길 수 있습니다.

텍스트 편집기는 선택된 영역을 주석 처리 할 수있을뿐만 아니라 코드 블록을 왼쪽과 오른쪽으로 쉽게 이동할 수 있어야하며을 누를 때 커서를 현재 들여 쓰기 수준으로 자동 배치해야합니다 Enter. 코드 접기도 유용 할 수 있습니다.


링크 붕괴를 방지하기 위해 Guido van Rossum의 트윗 내용은 다음과 같습니다.

@BSUCSClub Python 팁 : 여러 줄 문자열을 여러 줄 주석으로 사용할 수 있습니다. docstring으로 사용되지 않으면 코드를 생성하지 않습니다! 🙂


답변

허용 된 답변에서 …

삼중 인용 문자열을 사용할 수 있습니다. 그것들이 docstring이 아닌 경우 (클래스 / 함수 / 모듈에서 가장 먼저) 무시됩니다.

이것은 단순히 사실이 아닙니다. 주석과 달리 트리플 따옴표로 묶인 문자열은 여전히 ​​구문 분석되며 소스 코드에서 나타나는 위치에 관계없이 구문 상 유효해야합니다.

이 코드를 실행하려고하면 …

def parse_token(token):
    """
    This function parses a token.
    TODO: write a decent docstring :-)
    """

    if token == '\\and':
        do_something()

    elif token == '\\or':
        do_something_else()

    elif token == '\\xor':
        '''
        Note that we still need to provide support for the deprecated
        token \xor. Hopefully we can drop support in libfoo 2.0.
        '''
        do_a_different_thing()

    else:
        raise ValueError

당신은 얻을 것이다 …

ValueError: invalid \x escape

… Python 2.x 또는 …

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 79-80: truncated \xXX escape

… 파이썬 3.x에서.

파서에 의해 무시되는 여러 줄 주석을 수행하는 유일한 방법은 …

elif token == '\\xor':
    # Note that we still need to provide support for the deprecated
    # token \xor. Hopefully we can drop support in libfoo 2.0.
    do_a_different_thing()


답변

Python 2.7에서 여러 줄 주석은 다음과 같습니다.

"""
This is a
multilline comment
"""

수업에 참여하는 경우 올바르게 탭해야합니다.

예를 들면 다음과 같습니다.

class weather2():
   """
   def getStatus_code(self, url):
       world.url = url
       result = requests.get(url)
       return result.status_code
   """


답변

AFAIK, Python에는 블록 주석이 없습니다. 개별 행에 주석을 달기 위해 #문자를 사용할 수 있습니다 .

당신이 사용하는 경우 메모장 ++ , 블록 주석에 대한 바로 가기가 있습니다 . gVimEmacs 와 같은 다른 사람들 도 비슷한 기능을 가지고 있다고 확신 합니다.


답변

여러 줄 문자열이 처리되지 않는다는 것을 제외하고는 그렇지 않습니다. 그러나 대부분의 Python IDE가 여러 줄의 코드를 ‘설명’할 수있는 단축키가 있습니다.


답변

댓글을 달면

"""
long comment here
"""

스크립트 중간에 파이썬 / 리터는이를 인식하지 못합니다. 위의 주석이 표준 권장 사항의 일부가 아니므로 접기가 엉망이됩니다. 사용하는 것이 좋습니다

# Long comment
# here.

Vim 을 사용하는 경우 commentary.vim 과 같은 플러그인 을 눌러 긴 주석 행을 자동으로 주석 처리 할 수 있습니다 Vjgcc. 어디 Vj를 선택 두 줄의 코드, 그리고 gcc밖으로 의견을.

위와 같은 플러그인을 사용하지 않으려면 검색을 사용하고 다음과 같이 바꿀 수 있습니다

:.,.+1s/^/# /g

현재 행과 다음 행의 첫 문자가로 바뀝니다 #.