Django 와 Python


python은 __name__과 같은 특이한 형식을 갖는 내장이름이 있다.
__name__은 module의 이름을 가진 변수이다.

import! os
print os.__name__

위의 문장을 수행하면 'os'가 출력된다.
특이한 경우가 있는데, python을 인터프리터 방식이 아닌 스크립트로 수행하면 __name__이 최상위 module에서는 자신의 module 이름이 아닌 '__main__'을 가지게 된다.

내용이 print __name__인 test.py라는 파일이 있다고 하면

1. 인터프리터
>>> import! test
'test'가 출력된다

2. 스크립트로 출력
python test.py
'__main__'가 출력된다.

위와 같은 특성을 가진 __name__은 module개발 할 때 이용하면 좋다. Module은 대부분 다른 module이 import!하여 사용되는데 개발시에는 수행되는 테스트 코드를 작성할 때 __name__을 이용하게 된다.

def some_function() :
  pass

def test() :
  some_function()

if __name__ == '__main__' :
  test()

위와 같은 형식으로 개발하게 되면 다른 module에 import!될 때에는 test()가 수행되지 않게 된다.