-
[모듈] from이 언제고 import가 언제더라 ? __name__이 뭔데?Codes & Programming 2021. 7. 27. 23:07
파일명: mod.py
사용하고자하는 저장된 .py 파일(모듈)이 있다. 다른데서 데려다가 함수/변수/클라스를 쓰고자 한다.
#mod.py def add(a,b) return a+b def dec(a,b) return a-b
import mod
mod.add() 이렇게 모듈명.함수명()으로 선언한다.
import mod print(mod.add(1,2)) print(mod.dec(2,1))
-> 다른 파이썬 파일 혹은 대화형 인터프리터에서 위와 같이 사용한다. 이때 mod.add()이렇게 모듈명과 함수명을 함께 써야한다.
from mod import * 또는 from mod import add, dec
add(), dec() 모듈명없이 함수로 선언한다.
from {모듈명(.py명)} import {함수명/변수명/클라스명}
from mod import * print(add(1,2)) print(dec(2,1)) #or from mod import add, dec print(add(1,2)) print(dec(2,1))
-> 모듈명없이 바로 함수를 쓸 수 있다.
from a.b.c import
** from 뒤 a.b.c에는 모듈과 패키지까지만 올 수 있다.
if __name__ = '__main__':의 의미
__name__변수는 파이썬 내부적으로 쓰는 변수이다. 만약에 mod.py를 직접 실행했을시에 __name__변수는 __main__이 된다.
따라서 직접 실행했을 때에만 if이후가 참이되므로 출력이 수행된다.
#mod.py def add(a,b) return a+b def dec(a,b) return a-b if __name__ = '__main__': print(add(1,2))
따라서, 모듈로 불러왔을 때, 이 경우에는 mod.py의 __name__변수에는 __main__이 아닌, 'mod'가 저장되므로,
print(add(1,2))는 해당 인터프리터에서는 수행되지 않는다.
import mod print(mod.add(1,2)) print(mod.dec(2,1))
'Codes & Programming' 카테고리의 다른 글
[csv] 읽고 쓰기 (0) 2021.07.27 [Python Basic] zip()과 Dict(), enumerate() 로 리스트를 딕셔너리로 바꾸기 (0) 2021.07.22 [git/conda] 명령어 모음 (0) 2021.07.08 [Pandas/Matplotlib] 소소하지만 알면 좋은 팁 (판다스 포맷, 플랏 한글폰트 깨짐, 화질 설정 등) (0) 2021.07.01 [Kaggle] Bike Sharing Demand - 자전거 수요 예측 경진대회(RandomForestRegression) (0) 2021.06.13