파이썬 내장 변수와 언더바


Python의 실행 특성

Python은 다른 언어들과 다르게 스크립트가 실행됐을(python code.py) 때 자동으로 실행되는 메인함수가 없다. 그 대신에 들여쓰기가 되지 않은 level 0의 코드를 모두 실행하는데, 함수나 클래스는 이 때 정의되었으나 실행되지 않는다.

파이썬 스크립트가 직접 실행되는 경우(python code.py) 모듈의 이름인 __name__ 내장 변수가 __main__으로 설정되며, code.py가 다른 스크립트에 의해 import 되었을 경우(import code) 해당 code.py의 __name____main__으로 설정되지 않는다.

이 점은 이렇게 응용될 수 있다.

if __name__ is __main__ :
  print("This is only executed when you just run the code")
else:
  print("This is what you get if you import this code")

클래스

파이썬에서 클래스를 정의할 때는 대게 이런 기본 형태를 참고하는 게 좋다. init은 클래스를 호출하였을 때 가장 먼저 실행되는 함수이며, self는 클래스의 지역 변수를 뜻한다.

class Message:
  def __init__(self, msg):
    self.msg = msg

  def __repr__(self):
    return "Message: %s" % self.msg

그리고 위에서 작성한 __repr__이라는 함수는 ipython환경 친화적인 함수로, Mesage("I have a pen")을 입력하면 Message: I have a pen을 인터프리터에 표시해준다.

버리는 변수

Python에서는 버리는 변수를 언더바(_)로 표시한다.

for _ in range(1000):
  print("I need to print this 1000 times but I don't need to use variable.")

pep808의 변수/함수명 표기법

python 커뮤니티에서는 변수와 함수사이에 언더바를 넣어 단어를 구분짓는 경우가 잦다.

some_variable = 1
def some_function:
  print(some_variable)

인터프리터에서 사용되는 경우

언더바는 파이썬 인터프리터에서 마지막으로 실행된 결과값을 저장하는 변수로도 쓰인다.

>>> 10
10
>>> _
10
>>> _ * 30
300

더 읽어보기

underscore-in-python