python 중 단일 밑줄총화
머리말
우 리 는 소스 코드 를 읽 을 때 여러 가지 밑줄 친 것 을 자주 볼 수 있다.사용 하기 때문에 오늘 특별히 정 리 를 했 습 니 다.그리고 사실은 많은(모든 것 이 아 닙 니 다)밑줄 친 사용 은 python 해석 기 에 영향 을 미 치 는 것 이 아니 라 약 속 된 관례 입 니 다.
0x1 이전 문장의 실행 결 과 를 저장 합 니 다.
python 의 해석 기 에서이전 문장의 실행 결과 입 니 다.최초 로 CPython 이 시행 되 었 고 지금까지 다른 유형의 해석 기 도 사용 되 고 있 습 니 다.
0x 02 는 중요 하지 않 은 변수 로 서
예 를 들 어 아래 의 이 예 는:
for _ in range(10):
print 'hello world!'
위의 구문 실행 결 과 는 화면 에 10 줄 hello World 를 인쇄 하 는 것 입 니 다.우 리 는 0-9 라 는 숫자 가 필요 하지 않 기 때문에 그 에 게 변수 이름 을 줄 필요 가 없습니다(비록변수 이름sqlmap 의 원본 코드 를 다시 보 겠 습 니 다:
if not any(_ in sys.argv for _ in ("--version", "--api")):
_ = BANNER
if not getattr(LOGGER_HANDLER, "is_tty", False) or "--disable-coloring" in sys.argv:
_ = clearColors(_)
elif IS_WIN:
coloramainit()
dataToStdout(_, forceOutput=True)
이곳 에서 도 여러 번 사용 되 는 것 을 볼 수 있 습 니 다,여기 의 밑줄 은 중요 하지 않 은 변수 로 서 현재 사용 할 뿐 뒤 에는 더 이상 사용 하지 않 습 니 다.이것 도 습관 적 인 용법 일 뿐이다.국제 화
아마 너 도 본 적 이 있 을 거 야.""함수 로 사 용 됩 니 다.이러한 상황 에서 국제 화 와 현지 화 문자열 간 에 찾 은 함수 이름 을 번역 하 는 데 사 용 됩 니 다.이것 은 해당 하 는 C 약속 에서 비롯 된 것 같 습 니 다.예 를 들 어 Django 문서 의'변환'섹 션 에서 다음 코드 를 볼 수 있 습 니 다.
from django.utils.translation import ugettext as _
from django.http import HttpResponse
def my_view(request):
output = _("Welcome to my site.")
return HttpResponse(output)
국제 화 는 저도 그의 구체 적 인 용법 을 잘 모 릅 니 다.아직 사용 하지 않 았 기 때문에 위의 내용 은 제 가 찾 아 본 자료 에서 나 왔 습 니 다.0x 04 변수 앞 밑줄
학습 모듈 과 클래스 에서 단일 밑줄 로 시작 하 는 변 수 를 자주 만 납 니 다.python 류 에서 이 부분 을 작성 할 때 많은 사람들 이 단일 밑줄 로 시작 하 는 변 수 를 c++의 proctected 형식 변수 에 비유 합 니 다.이것 도 규범 입 니 다.c++의 proctected 형식의 변 수 는 클래스 외부 에서 접근 할 수 없다 는 것 을 알 고 있 지만 python 에 서 는 가능 합 니 다.예 를 들 어 다음 코드:
class Test:
def _test(self):
print 'I am test'
t = Test()
t._test()
#I am test
그래서 클래스 를 작성 할 때 단일 밑줄 의 변 수 는 프로그래머 간 의 아름 다운 약속 입 니 다.이런 변수 라면 클래스 외부 에서 함부로 접근 하지 마 세 요!!그러나 만약 에 우리 가 모듈 을 가 져 올 때 이 밑줄 로 시작 하 는 변 수 를 보면 달라 집 니 다.여기 서 이러한 특수 한 이름 의 변 수 는 특정한 모듈 과 유사 한'개인'변수 가 됩 니 다.왜냐하면 우 리 는 from 모듈 이름 import*문 구 를 사용 하여 모듈 을 가 져 올 때 이 밑줄 로 시작 하 는 변 수 는 기본적으로 가 져 오지 않 기 때 문 입 니 다.그래서 실제로 이 밑줄 은 python 의 해석 기 에 영향 을 주 었 습 니 다.
0x 05 더 블 밑줄 로 시작 하 는 변수test
이러한 형식의 변 수 는 클래스 에 나타 납 니 다.우 리 는 보통 개인 변수 라 고 부 릅 니 다.클래스 의 외부 에서 이 변 수 를 간단하게 이름 으로 접근 할 수 없 기 때 문 입 니 다.예 를 들 어:
class Test:
def __test(self):
print 'I am test'
t = Test()
t.__test()
#Traceback (most recent call last):
#File "E:/python/python_test/under.py", line 10, in <module>
# t.__test()
#AttributeError: Test instance has no attribute '__test'
오류 메시지 에 따 르 면 이 인 스 턴 스 에서 우리 가 방금 정의 한 을 찾 을 수 없습니다.test 이 함 수 는 확실히 c++의 개인 변수 와 같 지만 python 의 방법 은 더욱 재 미 있 을 수 있 습 니 다.이것 은 우리 의 변수 에 이름 을 바 꾸 었 을 뿐 입 니 다.우리 이름 을 바 꾸 어 방문 합 시다.
class Test:
def __test(self):
print 'I am test'
t = Test()
t._Test__test()
#I am test
0x 06 더 블 밑줄 시작 더 블 밑줄 끝와 유사 하 다init__이러한 변 수 는 모두 가 이미 많은 것 을 접 했 을 것 입 니 다.이러한 일 들 은 python 의 내장 변수(builtin)입 니 다.python 개발 자가 우리 에 게 맞 춤 형 으로 만들어 준 것 입 니 다.우 리 는 그들 을 다시 쓸 수 있 습 니 다.
총결산
위 에서 말 한 것 은 소 편 이 소개 한 python 중 단일 밑줄여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.