-
파이썬 : 함수(Function), 클래스(Class), 모듈(Module), 패키지(Package)금융퀀트/프로그램기초 2024. 1. 31. 06:45반응형
함수, 클래스, 모듈, 패키지의 관계
프로그램을 만드는 것은 각각의 기능들을 만들고 그 기능들을 묶어내서 하나의 구조화된 기계를 만들어내는 과정이라고 생각하면 된다. 여기서 가장 최소의 기능을 가지는 것을 "함수(Function)"라고 하고, 그 함수들을 클래스(Class)로 묶어도 되고 묶지 않아도 된다. 클래스로 묶이거나 묶이지 않은 함수들은 모듈(module)이라는 하나의 파일에 담긴다. 그리고 이 모듈들은 패키지(package)라는 하나의 폴더에 담긴다. 함수, 클래스, 모듈, 패키지의 관계를 그림으로 그리면 아래 그림 1과 같다.
위 그림 1과 같이 클래스로 묶인 함수 혹은 그냥 함수들이 모여서 하나의 모듈을 이루고, 모듈이 모여서 하나의 패키지 혹은 라이브러리가 된다. python 에서 다른 라이브러리를 참조한다는 것은 위 그림 1 왼쪽의 패키지 덩러리를 import(참조) 한다는 뜻이라고 생각하면 된다.
패키지(=라이브러리)의 참조
위 그림 1과 같은 패키지 덩어리를 참조할 때는 모듈별로 참조할 수도 있고, 특정 클래스만 찍어서 참조할 수도 있다. 아래 그림 2의 Case 1은 language라는 패키지에서 chi, eng, jpn, kor 이라는 모듈을 각각 참조한 경우이다. 이 때 chi 모듈의 greet 함수를 불러오기 위해서는 chi.greet()이라고 쓰면 되지만 eng 모듈의 greet은 ENGLISH 클래스로 한 번 감싸져 있기 때문에 eng.ENGLISH.greet() 이라고 쓰면 된다.
Case 1처럼 모듈만 참조했을 때 사용의 복잡함을 피하기 위해서 보통은 Case 2와 같이 직접 클래스를 참조하는 방식으로 참조선언을 한다.(ex. from language.eng import ENGLISH)
참조 선언을 할 때 무엇이 from에 들어가고 무엇이 import 에 들어가는지 헷갈릴 수 있는데, 최종적으로 참조하는 대상이 import 에 들어가고 최종적으로 참조하는 대상을 감싸고 있는 것이 from 에 들어간다고 생각하면 된다. (단, 함수를 최종적으로 참조선언을 할 수는 없다.: import greet 같은 건 안 된다.) 즉, language 패키지에서 모듈 덩어리를 참조하고 싶다면, from language import kor 이라고 선언하면 되고, language 패키지에서 kor 모듈의 KOREAN 클래스를 참조하고 싶다면, from language.kor import KOREAN 이라고 선언하면 된다.
반응형'금융퀀트 > 프로그램기초' 카테고리의 다른 글
파이썬: 멀티쓰레딩을 활용한 기업기본정보 목록 만들기(DART API활용) (0) 2024.03.17 파이썬: 멀티쓰레딩(Threading)과 멀티프로세싱(multiprocessing) (0) 2024.03.16 파이썬 32비트 환경에서 MYSQL 사용하기:DLL load failed while import _sqlite3 대응 (0) 2023.11.28 파이썬 판다스(pandas) 데이터 합치기 concat&merge 활용 (0) 2023.06.15 (OpenAPI)ChatGPT OpenAPI 사용: 데이터 분석(KOSPI200지수 예측) (0) 2023.03.29