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