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

2020. 1. 19. 14:26·Language/python

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
'Language/python' 카테고리의 다른 글
  • python: 입출력 - 알고리즘편
  • python - 정규식을 이용한 문자열 검색
  • python - regex(정규표현식)
  • python - string(2)
dev.wookii
dev.wookii
Effort Maketh Happiness
  • dev.wookii
    습관처럼
    dev.wookii
  • 전체
    오늘
    어제
    • 분류 전체보기 (295)
      • Language (35)
        • python (13)
        • C++ (22)
      • Kaggle (4)
      • Algorithms (112)
        • BOJ (58)
        • programmers (43)
        • SWExpertAcademy (2)
      • Certification (38)
        • Adsp (0)
        • Sqld (28)
        • 정처기 (9)
        • 빅데이터 분석기사 (0)
      • Data Analysis & ML (6)
      • 금융 & 디지털 (65)
      • CS (32)
        • DB (2)
        • SE (3)
        • Web&JSP (1)
        • Network (11)
        • OS (2)
        • Linux&Unix (6)
        • Server (1)
        • UX,UI (1)
        • 보안 (5)
      • 기타 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    programmers
    funny algorithms
    시뮬레이션
    Ebay korea #coding test
    2020 KAKAO
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev.wookii
Python: _(언더바) - 알고리즘편
상단으로

티스토리툴바