본문 바로가기

파이썬

(62)
[Python] 파이썬에서 __init__.py 의 의미 파이썬 코드의 폴더 구조를 보다보면 __init__.py 라는 파일이 굉장히 많이 보입니다. 특히 패키지 구조에서 많이 보이는데요. 패키지에서 __init__.py는 특별한 기능을 합니다. __init__.py 기능 파이썬에서 패키지를 읽어들일 때 가장 먼저 __init__.py 파일을 읽어 옵니다. 그래서 패키지와 관련된 초기화 처리를 이 부분에서 수행합니다. 그 중 __all__ 이라는 기능을 알아두실 필요가 있는데요. 특정 디렉터리의 모듈을 *로 한꺼번에 import 할때에는 __init__.py에 all이라는 리스트를 설정해주어야 합니다. # __init__.py __all__= ["first_module", "second_module"] print("test_package 폴더의 모듈을 모두 읽..
[Python] 파이썬에서 if __name__ == "__main__" 의 의미 if __name__ == "__main__" 파이썬 코드를 보다보면 위와 같은 조건문이 자주 등장하시는 것을 볼 수 있습니다. 위 조건문은 현재 코드가 프로그램의 진입점entry point 또는 메인 main 인지를 체크하는 부분입니다. __name__ 변수 파이썬에서 제공하는 __name__ 변수는 모듈의 이름을 출력해줍니다. 하지만 현재 코드가 프로그램의 진입점 entry point 인 경우에는 __main__이라는 값을 가지게 됩니다. 한번 코드를 통해 확인해봅시다. # main.py import external_module print("It's main.py") print(__name__) #external_module.py print("It's external_module.py") print(..
[Python] 파이썬 라이브러리와 프레임워크의 차이 파이썬 모듈을 보다보면 라이브러리(library) 그리고 프레임워크(Framework)라는 단어가 자주 등장합니다. 큰 구분없이 사용하지만, 제어 역전(Inversion of Control)에 따라서 둘을 구분할 수 있습니다. - 라이브러리 : 정상적인 제어가 이뤄지는 모듈 - 프레임워크 : 제어 역전이 발생하는 모듈 먼저 여기서 제어 역전을 설명할 필요가 있는데, 제어역전이란 '개발자가 만든 함수를 모듈이 호출하는 경우'를 뜻합니다. 아래 코드를 보시면 이해하실 수 있는데요. from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hi" 위 플라스크 코드는 개발자가 작성하였지만, 저 함수를 실행하는 것은 모듈입..
[Python] 파이썬 데코레이터 (decorator) 파이썬에는 데코레이터라는 기능이 있습니다. 사전적으로는 '꾸며주는 사람'이라는 뜻이 있는데요. 이 기능은 함수의 기능을 확장하고 싶은 경우에 사용합니다. 구현상으로는 함수를 인자로 받아 함수의 기능을 추가한 후 다시 리턴해주는 형식으로 구현합니다. 이해하기 어려우실 테니 예제를 통해 살펴보도록 하겠습니다. 만약 특정 함수의 실행시간을 측정하고 싶다면 아래와 같이 코드를 작성할 수 있습니다. import time def func_time_interval(funct): def time_check(*args, **kwargs): start_time = time.perf_counter() result = funct(*args, **kwargs) finished_time = time.perf_counter() p..
[Python] 파이썬 모듈의 종류와 사용법 (import) 모듈은 여러 변수와 함수를 가지고 있는 집합체로 표준 모듈과 외부 모듈이 있습니다. - 표준 모듈 : 파이썬에 기본적으로 내장되어 있는 모듈 - 외부 모듈 : 다른 개발자들이 특수한 목적으로 작성한 모듈 모듈 사용법 import 모듈 이름 >>> import random >>> random.random() 0.4056190639511452 위 예제는 표준 라이브러리인 random 모듈을 가져와 0.0과 1.0사이의 float 형태의 값을 무작위로 추출하는 random 함수를 호출한 것입니다. 만약 파이썬의 표준 라이브러리에 대한 자세한 정보를 알고 싶다면 파이썬 공식 홈페이지에서 확인하실 수 있습니다. https://docs.python.org/ko/3/library/index.html 외부 모듈 파이썬..