백엔드 프레임워크 & 언어/Python

Python "__name__" 속성

anodos 2023. 7. 24. 20:09

`__name__`은 Python의 특별한 내장 변수(Built-in Variable)로서, 모듈의 이름을 나타냅니다.

 이 변수는 해당 모듈이 직접 실행되는지(import 되는지)를 확인하는 데 사용됩니다.

파이썬 코드를 모듈화하여 재사용하려면 코드를 모듈 파일로 작성하고, 이를 다른 스크립트에서 import하여 사용할 수 있습니다. 그러나 때로는 해당 모듈이 직접 실행되었을 때와 import되었을 때 다른 동작을 해야할 수 있습니다. 이때 `__name__`을 사용하면 모듈의 동작을 구분할 수 있습니다.

`__name__` 변수의 값은 두 가지 경우에 따라 달라집니다:

1. **직접 실행되었을 때:** 모듈이 직접 실행되었을 때, `__name__` 변수의 값은 `"__main__"`이 됩니다. 이는 현재 실행 중인 스크립트가 메인 스크립트라는 의미입니다.

2. **import되었을 때:** 모듈이 다른 스크립트에서 import되어 사용될 때, `__name__` 변수의 값은 모듈의 이름이 됩니다.

예를 들어, 다음과 같이 `mymodule.py`라는 모듈 파일이 있다고 가정해봅시다:

# mymodule.py

def some_function():
    print("Hello from mymodule!")

print("__name__ value:", __name__)

if __name__ == "__main__":
    print("This module is running as the main script.")

 

이 모듈 파일을 다음과 같이 직접 실행하면:

$ python mymodule.py


출력 결과는 다음과 같습니다:

__name__ value: __main__
This module is running as the main script.


하지만 이 모듈을 다른 스크립트에서 import하면:

# main_script.py

import mymodule

print("__name__ value in main_script:", __name__)

`main_script.py`를 실행하면:

 

__name__ value: mymodule
__name__ value in main_script: __main__


위와 같이 `__name__` 변수를 사용하여 모듈이 직접 실행되었는지(import되었는지)를 확인하여 필요한 동작을 수행할 수 있습니다. 이를 활용하면 모듈을 더 유연하게 사용할 수 있습니다.

 

 

반응형