ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python 기초 #8] 모듈
    Programming 기초/Python 2023. 4. 25. 19:56

    * 모듈

    • 모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일이다. 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다.
    • 파이썬 확장자 .py로 만든 파이썬 파일은 모두 모듈이다.

     

    * import

    • 이미 만들어 놓은 파이썬 모듈을 사용할 수 있게 해주는 명령어이다. 예로, mod1.py 파일에 있는 add 함수를 사용하기 위해서는 mod1.add처럼 모듈 이름 뒤에 '.'(도트 연산자)를 붙이고 함수 이름을 쓰면 된다.
    • 모듈 이름 없이 함수 이름만 쓰고 싶은 경우에는 'from 모듈 이름 import 모듈 함수1, 함수2, ...'를 사용하면 된다. 
    • ' from 모듈 이름 improt * '로 *문자를 사용하면 해당 모듈의 모든 함수를 불러서 사용한다는 뜻이다.
    < import, could not be resolved Pylance 에러 > 2번, 3번 방법을 추천
    예제를 따라서 import를 했는데, could not be resolved Pylance 경고가 뜨면서 실행이 안됐다.
    파이썬 실행 경로의 default 값이 파이썬을 설치한 Program Files 하위 디렉터리 폴더로 설정되어 있는데, 예제 파일을 저장한 곳은 바탕화면에 새롭게 만든 폴더였다. 모듈 파일을 못 찾아서 뜨는 에러인 것이다. 

    < 해결 방법 1 >
    ctrl+shift+P ->  Python: Select interpreter 검색 -> Enter interpreter path -> Browse your file system to find a Python interpreter 클릭 -> 모듈이 있는 폴더에서  python.exe 실행파일을 지정해준다. (.exe 실행파일이 없으면 파이썬이 설치된 폴더에서 python.exe을 복사해서 가져오면 된다.)

    < 해결 방법 2 > -
    명령 프롬프트 창을 이용해서, sys.path에 새롭게 만든 폴더의 디렉터리를 추가한다. sys.path는 파이썬 라이브러리가 설치되어 있는 디렉터리인데, 만약 파이썬 모듈이 sys.path 디렉터리에 들어 있다면 모듈이 저장된 디렉터리로 이동할 필요 없이 바로 불러서 사용할 수 있다.

    1. 명령 프롬프트 실행
    2. python 입력(파이썬 인터프리터 shell 실행)
    3. import sys 모듈 불러오기
    4. sys.path.append("C:/~~")  저장된 모듈의 폴더 주소를 복붙.
    5. sys.path 입력, sys.path 리스트에 복붙한 주소가 잘 추가 되었는지 확인.

    < 해결 방법 3 >
    PYTHONPATH 환경 변수 사용하기
    1. 명령 프롬프트 실행
    2. set PYTHONPATH = C:\~주소 입력
    3. python (파이썬 인터프리터 shell 실행)

     

    * if _ _name_ _ == "_ _main_ _":

    • 해당 모듈의 내용 중 다른 파이썬 모듈에서 호출될 때 호출되지 않게 할 수 있음.
    • _ _name_ _ 변수는 파이썬이 내부적으로 사용하는 특별한 변수 이름이다.
    1.  해당 변수가 쓰여있는 모듈 내에서 _ _name_ _ 변수에는 _ _ main_ _ 값이 저장.
    2. 외부에서 호출될 때는 _ _ name_ _ 변수에 '해당 모듈 이름 값'이 저장된다. ( _ _name _ _ 과 _ _main_ _값이 다르므로 if문이 출력되지 않는다.)
    # 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))

     

     

     

    댓글

Designed by Tistory.