가끔, python 파일을 확인하면 함수 앞에 _가 있는 경우가 있다. 이는 언제, 사용하고 언제 사용하지 않는걸까 ?
결론적으로, 해당 함수를 작성된 파이썬 파일에서만 사용하고 싶다면, 를 붙이고 아니라면 를 붙이지 않는다.
예로 살펴보자
def not_under_bar() :
print('not underbar import')
def _under_bar() :
print('underbar import')
not_under_bar()
_under_bar()
해당 방식으로 2개의 함수를 작성했다. teminal에서 해당 python file을 실행하면, 둘다 정상적으로 출력된다.
$ python underbar_test.py
not underbar import
underbar import
그렇다면, 이를 다른 file에서 import 해서 사용해보자
from underbar_test import *
not_under_bar()
_under_bar()
not_under_bar()
와, _under_bar
는 주석처리 해주도록 하자$ python underbar_import_test.py
not underbar import
Traceback (most recent call last):
File "C:\Users\multicampus\Desktop\TIL\Python Intro\함수\함수연
습\underbar_import_test.py", line 5, in <module>
_under_bar()
NameError: name '_under_bar' is not defined
_under_bar
모듈을 찾지 못한다. from underbar_test import *
from underbar_test import _under_bar
not_under_bar()
_under_bar()
$ python underbar_import_test.py
not underbar import
underbar import