습관처럼

Python: _(언더바) - 알고리즘편 본문

Language/python

Python: _(언더바) - 알고리즘편

dev.wookii 2020. 1. 19. 14:26

python : _(언더바)의 기능


1. interpreter에서 마지막 값을 저장하고자 할때.

2. 값을 무시하고 싶을 때

3. 변수나 함수명에 특별한 의미를 부여하고자 할때.

4. 숫자 리터럴 값의 자리 수 구분을 위한 구분자로서 사용할때 

 

a,_,c = 1,2,3 일 경우 a 에는 1, c 에는 3 이 저장되는 것을 알 수 있습니다.

여러개의 값을 무시하고 싶은 경우에는 a,*_,c 처럼 _ 앞에 * 를 사용하면 됩니다.

또한 값을 무시하는 _ 는 index 가 필요없는 for loop 문을 작성할 경우에 사용할 수 있습니다.

a,_,c=1,2,3
print(a,c)
# 1,3 출력

for _ in range(10):
	print("print")
# 인덱스에 상관없는 경우 _(언더바 사용)

 

어떤 것에 특별한 의미를 부여하고 싶을 때 사용할 수 있습니다.

파이썬에서 특별한 의미를 부여할 수 있는 부분들은 폴더메소드 속성 으로 총 3가지가 있습니다. 

 

폴더안에 __init__.py 라는 파일이 있으면 그 폴더를 패키지로 만들 수 있습니다.

'_' 가 앞에 붙으면 외부 사용자는 사용하지 말라는 권유의 문법입니다. 외부에서 이 모듈, 클래스를 import 할 경우 from module import * 같이 전체를 불러오는 import 를 하면 '_' 가 앞에 붙어있는 변수나 메소드들은 호출되지 않습니다. 하자만 직접 '_' 가 붙은 변수나 메소드를 호출한다면 사용이 가능하기 때문에 권유의 문법이라고 불립니다.

 

'__' 언더바가 붙은 메소드는 2가지 종류로 나누어집니다. 기본적으로 제공하는 매직 메소드들이거나 맹글링을 위한 메소드 입니다.

맹글링이란 컴파일러나 인터프리터가 변수나 함수명을 일정한 규칙에 의해 변형시키는 것을 의미합니다. 메소드의 맹글링 규칙은 메소드 앞에 _ClassName 을 붙이는 것으로 맹글링 됩니다.

 

class A:
    def __double_method(self):
        pass
class B(A):
    def __double_method(self):
        pass
print(dir(A()))
print(dir(B()))

숫자 또는 문자값의 자릿수 구분을 위한 구분자로써 '_' 가 사용 가능합니다.

dec_base = 1_000_000
dec_add = 11_000
print(dec_base)
print(dec_add)
print(dec_base + dec_add)

 

 

출처:https://gomguard.tistory.com/125

'Language > python' 카테고리의 다른 글

python: 입출력 - 알고리즘편  (0) 2020.01.20
python - 정규식을 이용한 문자열 검색  (0) 2019.12.22
python - regex(정규표현식)  (0) 2019.12.22
python - string(2)  (0) 2019.12.22
python - string(1)  (0) 2019.12.22