아휴 스크립트 언어 짱싫다 했는데 어쩌다보니 하고있네...
언더 스코어(_)
기본적으로 언더 스코어는 여타 다른 언어에서 스네이크 방식의 변수 및 함수를 선언할 때 이름에 쓰였다.
그런데 파이썬에서는 조금 특별한 위치를 가진다.
- 인터프리터에서 마지막 값을 저장
- 값을 무시하고싶을 때
- 변수나 함수명에 특별한 의미, 기능부여
- 숫자 리터럴값의 자릿수 구분용
인터프리터에서
인터프리터, 그러니까 대충 터미널 켰을때 인터프리터는 대화형 실행을 하기 때문에 마지막 값을 볼 수 있다. 그 마지막 값을 받아 오는 _
>> 1+1
2
>> _+1
3
이런느낌
값을 무시하고싶을 때
일단 이 용도의 _는 python 3.x 에서만 사용 가능하다.
# 언패킹시 특정값을 무시
x, _, y = (1, 2, 3) # x = 1, y = 3
# 여러개의 값 무시
x, *_, y = (1, 2, 3, 4, 5) # x = 1, y = 5
# 인덱스 무시, 인덱스 값이 크게 의미를 가지지 않는 반복문에서
for _ in range(10):
fill_in()
# 특정 위치의 값 무시
for _, val in list_of_tuple:
fill_in()
변수나 함수명에 특별한 의미, 기능부여
파이썬용 가이드라인 PEP8에서 소개한 내용인데,
https://peps.python.org/pep-0008/
영어고 길다.
3줄 요약
- 폴더 : 폴더안에 __init__.py 파일이 있으면 해당 폴더를 패키지로 취급
- 메소드 : 모듈 import할 때, from module import * 처럼 대충 다 가져오는 형식 앞에 _가 붙어있는 변수, 메소드는 호출 x. 쓰고싶으면 직접 호출.
- __init__, __str__ 처럼 클래스를 만들고 싶을때 or 맹글링을 하고싶을때 메소드 앞에 _ClassName을 붙이는 방식으로 사용
숫자 리터럴값의 자릿수 구분용
1,000,000 = 1_000_000
제일 간단한데 제일 신기했다 이러면 일반 숫자 리터럴과 동일하게 처리된다.