티스토리 뷰
안녕하세요
프로그래밍을 배우는 빛나는 샤트입니다.
이번에 알아볼 내용은 Python에서 사용하는 from, import 그리고 __name__ == "__main__" 에 대해 알아보려고 합니다.
1. from, import
먼저 from, import가 어떤 것인지에 대한 내용은 아래 링크에 자세히 있으므로 참고바랍니다.
https://dojang.io/mod/page/view.php?id=2450
간단하게 말하면 from과 import를 이용해서 패키지, 모듈을 불러서 사용했습니다.
미리 잘 만들어진 모듈을 load해서 사용하기만 하니까 매우 편리합니다.
만약 우리가 원하는 기능이 없다면? 직접 만들어볼 수도 있습니다.
아래 그림은 제가 간략하게 표현해본 관계입니다.
우리의 main code는 main.py에 작성합니다.
그리고 필요한 모듈은 moduel.py에서 작성합니다.
이렇게 하면 2명이서 분업할 수 있어 시간이 절약됩니다.
module.py에는 덧셈, 빼기, 곱하기 등의 기능이 있는 함수 add, minus, matmul 등이 작성되었습니다.
먼저 module.py은 아래와 같이 작성되었다.
# module.py
def add(x,y):
return x+y
def matmul(x,y):
return x*y
def minus(x,y):
return x-y
우리는 from, import를 이용해 module.py에 있는 함수를 불러서 main.py에서 사용할 수 있습니다.
# main.py
from module import add
from module import matmul
from module import minus
add_res = add(1,2) # 3
matmul_res = matmul(2,3) # 6
minus_res = minus(5,2) # 3
위와 같이 main.py에서 from, import를 이용해 module에 있는 함수를 불러서 사용할 수 있다.
그렇다면 우리는 module.py에 있는 모든 함수를 import를 하고 싶은데 함수 개수만큼(위에서는 3줄) from, import를 해야할까?
모두 import 하고 싶다면 import * 을 이용하면 된다.
아래와 같이 import * 을 하게 되면 module.py에 있는 모든 함수가 import가 된다.
# main.py
from module import *
add_res = add(1,2) # 3
matmul_res = matmul(2,3) # 6
minus_res = minus(5,2) # 3
정리: from py파일이름 import 함수이름
하지만 import만을 이용해서 add/matmul/minus 함수를 사용할 수 있다. 아래 예시를 보자.
import py파일이름 만 사용하게 되면 함수이름을 적을 때 module.add와 같이 모듈이름.함수이름 이렇게 써야한다.
# main.py
import module
add_res = module.add(1,2) # 3
matmul_res = module.matmul(2,3) # 6
minus_res = module.minus(5,2) # 3
만약 from module만 사용하게되면 error가 발생함.
2. if __name__ == "__main__"
코딩을 하다보면 py파일 최하단에 if __name__ == "__main__" 구문이 쓰여진 것을 본 적이 있을 것이다.
먼저 아래와 같이 py_practice.py를 작성해보자.
add 함수를 작성한 상태이다.
# py_practice.py
def add(x,y):
return x + y
터미널 창에서 python py_practice.py를 실행하면 아무 일도 일어나지 않는다.
물론 python을 실행해 import를 하면 add 함수를 사용할 수 있다. (아래 참고)
하지만 만약 python py_practice.py를 실행했을 때 특정 코드를 실행하게 하고 싶다면 어떻게 해야 될까?
예를 들어서 python py_practice.py를 실행하면 3+5의 결과를 나타내고 싶다면?
# py_practice.py
def add(x,y):
return x + y
if __name__ == '__main__':
print(add(3,5))
위의 코드와 터미널 실행 결과를 확인해보자.
python py_practice.py를 실행하니 if문이 실행되어서 add(3,5)의 결과가 print 되었다.
즉, py파일을 바로 실행하게 되면 if __name__ == "__main__" 가 실행되어서 그 아래 코드가 실행되는 것이다.
터미널에서 py파이을 바로 실행하게 되면 __name__ 변수에 "__main__"이 할당되기 때문!
코드를 작성할 때 py파일을 바로 실행할 때 특정 코드를 실행하고 싶다면 if __name__ == "__main__"을 활용해보자.
참고한 글:https://madplay.github.io/post/python-main-function
'Python' 카테고리의 다른 글
[알고리즘]빗물트래핑 (0) | 2022.02.15 |
---|---|
[알고리즘]두 수의 합 (0) | 2022.02.15 |
[Python] Python OS Module (0) | 2022.02.11 |
- Total
- Today
- Yesterday
- AIFFEL후기
- AIFFEL인공지능과정
- SLAM강의
- 해커톤
- SLAM공부
- 모두의 연구소
- 광주AI
- 자율주행로봇
- 자율주행기술
- 아이펠
- 도전
- 광주
- Python
- AIFFEL교육
- 인공지능교육
- 양정연SLAM
- 멋쟁이사자처럼
- 대전 인공지능
- 인공지능
- 멘탈관리
- 실내자율주행
- 인공지능 교육
- 모두의연구소
- 서빙로봇
- AIFFEL
- 광주인공지능사관학교
- ros
- IT
- 배달로봇
- Slam
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |