my_module.py
변수, 함수, 클래스 등을 모아 놓은 파일이며, 아래와 같은 이유로 만든다.
모듈은 import <모듈이름>
을 통해 불러사용 한다. 한가지 유의점은 확장자 .py는 빼고 파일명 == 모듈이름 만 사용한다!
import my_module
my_new_var = my_module.my_var
my_new_func = my_module.my_func()
my_new_class = my_module.MyClass()
모듈 변수 사용 :뉴변수 = 모듈이름.변수명
모듈 함수 사용 : 뉴함수 = 모듈이름.함수명()
모듈 클래스 사용 : 뉴클래스 = 모듈이름.클래스명()
위 예제 코드에서처럼 모듈파일 전체를 불러들일때는 네임스페이스를 따라야 한다.
네임스페이스는 모듈명.함수명
과 같이 모듈명을 항상 작성한느 것을 말하는데, 어느파일(모듈)애서 해당 함수, 변수, 클래스를 찾으라 지정하는 것이다. 만약 네임스페이스 없이 사용한다면 현재 작성중인 파일내에서만 해당코드를 찾게 되며 에러를 발생하게 된다.
from <모듈명> import <함수/변수/클래스명>, <함수/변수/클래스명> ...
from - import-
키워드를 사용하자. 아래 예제코드와 같이 간결하게 사용가능하다.from my_module import my_var, my_func(), MyClass()
print(my_var)
my_func()
new_class = MyClass()
from - import -
키워드를 사용할때, 불러들일 자식들이 많다면 이또한 불편하다 느끼게 되는대. *
을 사용하면 모든 파일을 불러들이게 된다. 하지만 추천하지는 않는다. 이름이 충돌나는 경우가 많이 때문이다.
모듈과 현작업 파일에서 이름 충돌이 날경우에는 from - imoprt - as -
키워드를 사용하자.
from my_module import my_func as f1
from my_module2 import my_func as f2
from my_module3 import function_with_name_too_long as f3
f1()
f2()
f3()
import my_module as m1
m1.my_module_func()