최근에 Python 공부를 시작했지만 여러 줄 주석을 구현하는 방법을 찾을 수 없었습니다. 대부분의 언어에는 다음과 같은 블록 주석 기호가 있습니다.
/* */
파이썬에서 이것을 시도했지만 오류가 발생하므로 아마도 올바른 방법이 아닐 것입니다. Python에 실제로 여러 줄 주석 기능이 있습니까?
질문자 :Dungeon Hunter
최근에 Python 공부를 시작했지만 여러 줄 주석을 구현하는 방법을 찾을 수 없었습니다. 대부분의 언어에는 다음과 같은 블록 주석 기호가 있습니다.
/* */
파이썬에서 이것을 시도했지만 오류가 발생하므로 아마도 올바른 방법이 아닐 것입니다. Python에 실제로 여러 줄 주석 기능이 있습니까?
삼중따옴표 문자열을 사용할 수 있습니다. 독스트링(클래스/함수/모듈의 첫 번째 것)이 아니면 무시됩니다.
''' This is a multiline comment. '''
(IndentationError 를 피하기 위해 '''
IndentationError
해야 합니다.)
Guido van Rossum (파이썬 창시자) 은 이것을 "프로 팁"으로 트윗했습니다.
그러나 Python의 스타일 가이드인 PEP8은 다음과 같이 연속적인 한 줄 주석 사용을 선호합니다.
# This is a multiline # comment.
...또한 이것은 많은 프로젝트에서 찾을 수 있는 것입니다. 텍스트 편집기에는 일반적으로 이를 쉽게 수행할 수 있는 바로 가기가 있습니다.
파이썬에는 독스트링으로 사용되지 않는 한 여러 줄 문자열이 #
-첨부된 주석 처럼 바이트코드를 생성하지 않는다는 의미에서 여러 줄 문자열/주석 구문이 있습니다. 사실상 주석과 같은 역할을 합니다.
반면에 이 동작이 공식 문서에 문서화되어 진정한 주석 구문이 되어야 한다고 말한다면 예, 언어 사양의 일부로 보장되지 않는다고 말하는 것이 옳을 것입니다.
어떤 경우에도 텍스트 편집기는 선택한 영역을 쉽게 주석 처리할 수 있어야 합니다(각 줄 앞에 #
그렇지 않은 경우 텍스트 편집기로 전환하십시오.
특정 텍스트 편집 기능이 없는 Python 프로그래밍은 고통스러운 경험이 될 수 있습니다. 올바른 편집기를 찾는 것(그리고 사용 방법을 아는 것)은 Python 프로그래밍 경험이 인식되는 방식에 큰 차이를 만들 수 있습니다.
텍스트 편집기는 선택한 영역을 주석 처리할 수 있을 뿐만 아니라 코드 블록을 왼쪽과 오른쪽으로 쉽게 이동할 수 있어야 하며 Enter 키 를 누를 때 현재 들여쓰기 수준에 커서가 자동으로 배치되어야 합니다. 코드 접기도 유용할 수 있습니다.
링크 붕괴를 방지하기 위해 다음은 Guido van Rossum의 트윗 내용입니다.
@BSUCSClub 파이썬 팁: 여러 줄의 문자열을 여러 줄 주석으로 사용할 수 있습니다. 독스트링으로 사용하지 않는 한 코드를 생성하지 않습니다! :-)
수락 된 답변에서 ...
삼중따옴표 문자열을 사용할 수 있습니다. 독스트링(클래스/함수/모듈의 첫 번째 것)이 아니면 무시됩니다.
이것은 사실이 아닙니다. 주석과 달리 삼중 따옴표로 묶인 문자열은 여전히 구문 분석되며 소스 코드에 나타나는 위치에 관계없이 구문적으로 유효해야 합니다.
이 코드를 실행하려고 하면...
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에는 블록 주석이 없습니다. 개별 행에 주석을 달기 위해 #
문자를 사용할 수 있습니다.
Notepad++를 사용하는 경우 블록 주석에 대한 바로 가기가 있습니다. 나는 gVim 과 Emacs 와 같은 다른 사람들도 비슷한 기능을 가지고 있다고 확신합니다.
여러 줄 문자열이 처리되지 않는다는 점을 제외하고는 그렇지 않다고 생각합니다. 그러나 대부분의 Python IDE에는 여러 줄의 코드를 '주석 처리'하는 단축키가 있습니다.
에 댓글을 달면
""" long comment here """
스크립트 중간에 Python/linters는 이를 인식하지 못합니다. 위의 설명은 표준 권장 사항의 일부가 아니기 때문에 접기가 엉망이 될 것입니다. 사용하는 것이 좋습니다
# Long comment # here.
Vim 을 사용하는 경우 commentary.vim 과 같은 플러그인 Vjgcc
를 눌러 긴 주석 줄을 자동으로 주석 처리할 수 있습니다. 여기서 Vj
는 두 줄의 코드를 선택하고 gcc
주석 처리합니다.
위와 같은 플러그인을 사용하지 않으려면 다음과 같이 검색 및 바꾸기를 사용할 수 있습니다.
:.,.+1s/^/# /g
이것은 현재 및 다음 줄의 첫 번째 문자를 #
대체합니다.
여러 줄 주석과 같은 기능은 없습니다. #
은 한 줄의 코드에 주석을 달 수 있는 유일한 방법입니다. 많은 분들이 ''' 댓글을 ''' 답변해 주셨습니다.
작동하는 것처럼 보이지만 내부적 '''
#
사용하는 주석처럼 인터프리터가 무시하지 않는 일반 문자열로 묶인 줄을 사용합니다.
불행히도 문자열화가 항상 주석 처리로 사용될 수 있는 것은 아닙니다! #
추가하는 표준을 따르는 것이 더 안전합니다.
다음은 예입니다.
test1 = [1, 2, 3, 4,] # test1 contains 4 integers test2 = [1, 2, '''3, 4,'''] # test2 contains 2 integers **and the string** '3, 4,'
여러 줄 주석에 """
를 사용하지 않는 것이 좋습니다!
다음은 예상치 못한 동작으로 간주될 수 있는 것을 강조하는 간단한 예입니다.
print('{}\n{}'.format( 'I am a string', """ Some people consider me a multi-line comment, but """ 'clearly I am also a string' ) )
이제 출력을 살펴보십시오.
I am a string Some people consider me a multi-line comment, but clearly I am also a string
여러 줄의 문자열은 주석으로 처리되지 않았지만 'clearly I'm also a string'
문자열입니다'로 연결되어 단일 문자열을 형성했습니다.
여러 줄에 주석을 달고 싶다면 PEP 8 지침 에 따라 주석 처리하십시오.
print('{}\n{}'.format( 'I am a string', # Some people consider me a # multi-line comment, but 'clearly I am also a string' ) )
산출:
I am a string clearly I am also a string
글쎄, 당신은 이것을 시도 할 수 있습니다 (따옴표를 실행할 때 첫 번째 질문에 대한 입력은 '
인용되어야 합니다):
""" print("What's your name? ") myName = input() print("It's nice to meet you " + myName) print("Number of characters is ") print(len(myName)) age = input("What's your age? ") print("You will be " + str(int(age)+1) + " next year.") """ a = input() print(a) print(a*5)
"""
사이에 무엇이든지 주석 처리됩니다.
한 줄 주석을 찾고 있다면 #
입니다.
Python의 여러 줄 주석:
나를 위해 '''와 """ 모두 효과가있었습니다.
예시:
a = 10 b = 20 c = a+b ''' print ('hello') ''' print ('Addition is: ', a+b)
예시:
a = 10 b = 20 c = a+b """ print('hello') """ print('Addition is: ', a+b)
Python의 인라인 주석은 해시 문자로 시작합니다.
hello = "Hello!" # This is an inline comment print(hello)
여보세요!
문자열 리터럴 내의 해시 문자는 해시 문자일 뿐입니다.
dial = "Dial #100 to make an emergency call." print(dial)
100번을 눌러 긴급 전화를 겁니다.
해시 문자는 한 줄 또는 여러 줄 주석에도 사용할 수 있습니다.
hello = "Hello" world = "World" # First print hello # And print world print(hello) print(world)
안녕하십니까
세계
독스트링을 지원하려면 텍스트를 삼중 큰따옴표로 묶습니다.
def say_hello(name): """ This is docstring comment and it's support multi line. :param name it's your name :type name str """ return "Hello " + name + '!' print(say_hello("John"))
안녕 존!
블록 주석의 경우 텍스트를 세 개의 작은 따옴표로 묶습니다.
''' I don't care the parameters and docstrings here. '''
파이썬 2.7.13:
하나의:
"A sample single line comment "
여러 줄:
""" A sample multiline comment on PyCharm """
PyCharm IDE 사용.
Ctrl+/를 사용하여 코드 행에
uncomment
comment
을 해제할 수 있습니다. Ctrl+/ 는 현재 줄 또는 한 줄 주석으로 선택한 여러 줄에 주석을 달거나 주석 처리를 해제합니다({# in Django templates, or # in Python scripts)
. Django 템플릿에서 선택한 소스 코드 블록에 대해Pressing Ctrl+Shift+/
{% comment %} and {% endcomment %}
태그로 둘러싸여 있습니다.
n = 5 while n > 0: n -= 1 if n == 2: break print(n) print("Loop ended.")
모든 줄을 선택한 다음 Ctrl + /를 누릅니다.
예, 둘 다 사용하는 것이 좋습니다.
''' Comments '''
그리고
""" Comments """
그러나 IDE에서 실행하는 동안 기억해야 할 유일한 것은 전체 파일을 '실행'해야 여러 줄 코드로 허용된다는 것입니다. 한 줄씩 'RUN'이 제대로 작동하지 않고 오류가 표시됩니다.
코드가 있는 줄에 주석을 작성하는 경우 # 기호 앞에 2칸, # 기호 앞에 1칸을 남겨두고 주석을 작성해야 합니다.
print("Hello World") # printing
새 줄에 주석을 작성하는 경우 # 기호에 공백 1개를 남겨두고 주석을 작성해야 합니다.
# single line comment
1줄보다 긴 주석을 작성하려면 3개의 따옴표를 사용합니다.
""" This is a comment written in more than just one line """
Python에서 여러 줄의 코드를 주석 처리하려면 #
한 줄 주석을 사용하기만 하면 됩니다.
# This is comment 1 # This is comment 2 # This is comment 3
파이썬에서 "적절한" 여러 줄 주석을 작성하려면 """
구문으로 여러 줄 문자열을 사용하는 것입니다. 파이썬에는 문서 문자열(또는 독스트링) 기능이 있습니다. 프로그래머에게 모든 파이썬 모듈에 빠른 메모를 추가하는 쉬운 방법을 제공합니다. 함수, 클래스 및 메서드.
''' This is multiline comment '''
또한 다음과 같은 클래스 객체로 docstring에 액세스할 수 있음을 언급하십시오.
myobj.__doc__
#
의 Python 주석 지원을 사용하는 IDE 주석 기능을 사용하는 것입니다.
나는 Anaconda Spyder를 사용하고 있으며 다음이 있습니다.
#
을 사용하여 한 줄/여러 줄의 코드에 주석을 달거나 주석 처리를 해제합니다.
나는 그것이 가장 쉽다고 생각한다.
예를 들어 블록 주석은 다음과 같습니다.
# ============================================================================= # Sample Commented code in spyder # Hello, World! # =============================================================================
여러 줄 주석은 실제로 Python에 존재하지 않습니다. 아래 예제는 할당되지 않은 문자열로 구성되어 있으며 Python에서 구문 오류에 대해 유효성을 검사합니다.
Notepad++ 와 같은 몇몇 텍스트 편집기는 작성된 코드나 단어를 주석 처리하는 단축키를 제공합니다.
def foo(): "This is a doc string." # A single line comment """ This is a multiline comment/String """ """ print "This is a sample foo function" print "This function has no arguments" """ return True
또한 Ctrl + K 는 메모장 ++에서 주석을 차단하는 단축키입니다. 선택 항목 아래의 모든 줄 앞에 #
을 추가합니다. Ctrl + Shift + K 는 블록 주석 해제용입니다.
주석을 달고 싶은 줄을 선택하고 Ctrl + ? Sublime Text 편집기에서 Python 코드에 주석을 달거나 주석을 제거합니다.
한 줄의 경우 Shift + #을 사용할 수 있습니다.
다음을 사용할 수 있습니다. 이것을 DockString이라고 합니다.
def my_function(arg1): """ Summary line. Extended description of function. Parameters: arg1 (int): Description of arg1 Returns: int: Description of return value """ return arg1 print my_function.__doc__
파이썬에서는 다음 단계에 따라 여러 줄 주석을 쉽게 사용할 수 있습니다.
파이썬에서 여러 줄 주석에 이 문서 문자열을 사용할 수 있습니다.
""" print("결과는 참입니다.")
""
출처 : http:www.stackoverflow.com/questions/7696924/is-there-a-way-to-create-multiline-comments-in-python
Xcode - 'NSUnknownKeyException'을 수정하는 방법, 이유: ... 이 클래스는 키 X" 오류에 대한 키 값 코딩 호환이 아닙니다. (0) | 2023.04.30 |
---|---|
"template" 및 "typename" 키워드를 어디에 그리고 왜 넣어야 합니까? (0) | 2023.04.30 |
git: 새 파일을 포함하여 모든 작업 디렉토리 변경 사항을 실행 취소합니다. (0) | 2023.04.28 |
psql에서 데이터베이스를 전환하는 방법은 무엇입니까? (0) | 2023.04.28 |
Python에서 객체가 반복 가능한지 어떻게 확인합니까? (1) | 2023.04.28 |