05-2 모듈
모듈 개발자가 아닌 이상 모듈은 사용하지 모듈을 만들일은 잘 없다 함
클래스는 만들어놓고 찍는 개념이라면
모듈은 어떤 파일을 만들었으면 파일을 불러와서 쓰는 개념
import mod1
print(mod1.add(3, 4))
이렇게 임포트만 해주면 그대로 mod1.py의 메서드를 불러올수 있다.
자바 스프링의 주입과 비슷하다
모듈안에도 클래스를 넣을 수 있다.
모듈은 파일자체를 불러와서 클래스니 함수니 변수니 쓸수 있는 것
클래스는 설계도고 그걸 인해서 여러 개를 찍어 낼수 있다면 클래스
클래스는 인스턴스를 찍어낼때 공장같이 여러 개 객체를 만들어 낼 때
모듈은 그냥 가져와서 그 코드를 쓰겠다는 것
from mod1 import add
이런식으로 애드만 가져와서 쓸수도 있다.
from mod1 import add, sub
```이렇게 두개 가져오려면 ,로 연결
Mod1에서 print(add(1,2))를 선언한다면 임포트 하는것만으로 3 불러온다
if __name__ == "__main__":의 의미
# mod1.py
def add(a, b):
return a+b
def sub(a, b):
return a-b
if __name__ == "__main__":
print(add(1, 4))
print(sub(4, 2))
네임이 메인일때만 실행하라는 뜻으로 된다.
def add(a, b):
return a + b
def sub(a, b):
return a-b
print(__name__)
if __name__ == "__main__":
print(add(1, 4))
print(sub(4, 2))
메인이라고 나오면 이 클래스가 메인이란 뜻
5-2에선 그냥 mod1이라고만 출력이됨 이프문이 일치 안해서
메인이 현 페이지에서의 메인이란 뜻이다
그래서 이 파일을 실행할 때만 네임 값이
메인으로 실행이되서 코드가 실행됨
모듈자체에서 실행할 때만 if문밑에가 실행되는거고
외부에서 불러올 때는 얘네가 수행 안됨
# mod2.py
PI = 3.141592
class Math:
def solv(self, r):
return PI * (r ** 2)
def add(a, b):
return a+b
다른 파일에서 모듈 불러오기
# modtest.py
import mod2
result = mod2.add(3, 4)
print(result)
다른 디렉터리에 있는 모듈을 불러오는 방법
마찬가지로 다른 폴더 밖에있으면 못불러옴
PYTHONPATH 환경 변수 사용하기