1. 모듈과 패키지
- 모듈이란?
- 함수나 변수, 클래스를 모아 놓은 파일이다.
- 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다.
- 모듈의 종류
- 표준 모듈 : 파이썬과 함께 따라오는 모듈 (기본 모듈, 따로 import 하지 않아도 자동으로 들어있음)
- 사용자 생성 모듈 : 프로그래머가 직접 작성한 모듈 (대부분 .py 형태)
- 서드 파티 모듈 : 파이썬 재단도, 프로그래머(본인) 도 아닌 다른 프로그래머 또는 업체에서 제공한 모듈 (대중적인 것)
- 외부 모듈을 사용할 수 있도록 하는 방법은 -> improt 파일명
- 확장자는 생략함.
- 파일에 있는 변수나 함수는 -> 파일명.변수 또는 파일명.함수() 로 호출
- 실습)
- my_func.py 라는 파이썬 파일을 만들어 변수, 함수 작성
- 실행할 파이썬 파일에서 improt my_func 로 임포트 -> my_func.addition() , mu_func.variable 로 안의 기능들 불러옴
- import에 대해 더 자세히
- 다른 모듈 내의 코드에 대한 접근을 가능하게 하는 것이다.
- 변수, 함수 , 클래스 등이 포함된다.
- import 모듈 또는 from 모듈 import 함수이름1, 함수이름 2 와 같은 형태로 입력한다.
- * : 와일드 카드
- * 이용하면 모듈 내 모든 것을 가져온다.
- sys.path를 통해서
- import 를 입력하면 어떤 폴더를 가져올 지 확인할 수 있다.
- 이 안에 없으면 import 모듈 불가하다. 따라서 import 할 모듈 경로를 추가해줘야한다.
- 직접 위치를 추가하려면?
- sys.path.append('검색할 경로')
- 이제 import 가 된다! -> import 모듈
- sys.path 에서의 순서도 중요하다
- 같은 이름의 모듈이 (다른 모듈이다, 이름만 같음) 다른 위치에 있을 경우 앞에 있는 모듈이 우선시 되기 때문이다.
- import 모듈 후 -> 모듈 파일 수정 하면
- 현재 모듈 수정 된 내용 적용 안되어있음
- -> 다시 모듈 불러와야한다 (런타임 다시 실행)
- __name__ 변수
- __name__ 변수란 파이썬이 내부적으로 사용하는 특별한 변수로,
- 현재 실행중인 파일의 이름은 __main__ 이라는 이름이 부여된다.
- 직접 실행 모듈이 __main__
- 사용되는 방법
- if __name__ == '__main__':
- ~~~
- a.py 가 실행하는 파일이고 이 안에 import b.py 를 했다 치자.
- b.py 에 다음과 같은 __main__ if문을 넣었으면 실행 시 __main__ 변수는 a.py 이고 b.py 에서의 __name__ 이 b.py 이므로 __main__ if 문은 실행되지 않는다.
- 대신 b.py 를 별도로 직접적으로 실행할 경우 __main__ 변수는 b.py 가 맞으므로 __main__ if 문이 실행된다. => 이런 식으로 사용된다,,
- if __name__ == '__main__':
- 불러온 모듈의 경우 -> 이름이 __name__ 이란 변수에 저장된다.
- 패키지란?
- 모듈을 모아놓은 디렉토리 이다.
- 패키지에서 특정한 모듈을 가져올 때는
- from my_package import my_module
- 이와 같은 형식으로 불러오면 된다.
- 주의!!!
- python 3.3 버전 이전에는
- 디렉토리가 패키지로 인정받기 위해서는 __init__.py 라는 파일이 내부에 있어야 했다.
- python 3.3 버전 이후의 버전에서는 필요없지만 이전 버전과의 호환성을 위해서 __init__.py 파일을 추가해주는것을 추천한다.
- __init__.py 파일이 들어있는 패키지는 파이썬이 패키지라고 인식하는 방식이다.
- 모듈 안의 모든 내용을 불러올 때는 => * (와일드카드) 를 썼다.
- 그렇다면 패키지 안의 -> 모든 모듈을 불러오려면 어떻게 해야하나?
- => 패키지 디렉토리 안에 __init__.py 라는 이름의 파일을 만든다.
- __all__ = ['모듈이름','모듈이름2']
- 이런 식으로 *(와일드카드) 로 부를 수 있는 모듈 이름들을 직접 지정해준다.
- 이러면 import 패키지로 실행되면 -> __init__.py 먼저 실행 -> __all__=[모듈이름]
* 필수 삽입 링크 : http://bit.ly/3Y34pE0
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
<사진 2장>
'패스트캠퍼스_컴공전공필수+인공지능 > 0원 챌린지' 카테고리의 다른 글
2/26(일) 파이썬 - 클래스4 (0) | 2023.02.26 |
---|---|
2/25(토) 파이썬 - 클래스3 (0) | 2023.02.25 |
2/24(금) 파이썬 - 클래스2 (0) | 2023.02.24 |
2/22(수) 2. 함수 심화학습2 (0) | 2023.02.22 |
2/21(화) 2. 함수 심화학습 (0) | 2023.02.21 |