질문
이 "밑줄"은 자주 발생하는 것 같은데, 이것은 파이썬 언어의 요구사항인지 아니면 단지 관습의 문제인지 궁금했습니다.
또한, 어떤 함수들이 밑줄을 가지고 있는지 그리고 왜 (__init__
같은) 밑줄을 가지고 있는지 이름과 설명을 알려주실 수 있을까요?
답변
파이썬 PEP 8 -- 파이썬 코드 스타일 가이드에서 다음을 발췌:
기술적: 네이밍 스타일
다음과 같은 선행 또는 후행 밑줄을 사용한 특수 형식이 인식됩니다 (이러한 형식은 일반적으로 모든 케이스 규칙과 결합될 수 있음):
_single_leading_underscore
: 약한 "내부 사용" 표시자입니다. 예를 들어from M import *
은 밑줄로 시작하는 객체를 가져오지 않습니다.
single_trailing_underscore_
: 파이썬 키워드와 충돌을 피하기 위해 관례적으로 사용됩니다. 예:
Tkinter.Toplevel(master, class_='ClassName')
__double_leading_underscore
: 클래스 속성의 이름을 지정할 때 이름 맹글링을 호출합니다 (클래스 FooBar 내에서__boo
는_FooBar__boo
가 됨; 아래 참조).
__double_leading_and_trailing_underscore__
: 사용자가 제어하는 네임스페이스에 존재하는 "매직" 객체 또는 속성입니다. 예:__init__
,__import__
또는__file__
. 이러한 이름을 발명하지 마세요; 문서화된 대로만 사용하세요.
이중 선행 및 후행 밑줄을 가진 이름은 사실상 파이썬 자체를 위해 예약되어 있습니다: "이러한 이름을 발명하지 마세요; 문서화된 대로만 사용하세요".
댓글