본문 바로가기
728x90
반응형

PYTHON40

[Python] Type Annotation: 파이썬에서 변수 및 함수에 type 지정. Python은 Dynamic language이기 때문에 variable은 여러 type object를 가르킬 수 있다.이는 매우 높은 유연성을 제공해주고, 작은 규모의 소스코드에서는 잘 동작한다. (특히 type에 대해 자유롭다보니 언어의 진입장벽을 낮춰주는 효과도 있다.)하지만, 이는 runtime에서 TypeError가 발생할 확률이 커지기 때문에 대규모의 프로젝트에서는 버그가 많아진다는 단점을 가진다.때문에, 안정성을 중시하는 software를 개발하는 입장에서는 compile 단계에서 type check를 통해 문제점을 사전에 해결할 수 있는 static language가 보다 선호되는 경우가 많다.이같은 단점을 보완하기 위해 Python 3.5부터는 Type Annotation 을 제공하기 시작.. 2023. 8. 30.
[Python] functools.partial functools.partial(func, /, \*args, \*\*keywords) ref.: functools.partial function 처럼 동작하는 partial object를 반환한다. 반환되는 partaial object를 호출시 parameter로 받은 func이 호출되며 partial object를 호출할 때 넘겨진 positional arguments args와 keyword arguments keywords가 해당 func의 argument로 주어져 호출된다. 만약 partial object가 호출될 때 더 많은 arguments가 주어질 경우, partial object를 생성할 때 주어졌던 args와 keywords에 append되어 func에 넘겨진다 (keyword에 따라 .. 2023. 8. 25.
[Env] Mamba 설치하기. 이 문서는 conda가 설치되지 않은 상태에서 mamba를 설치하는 과정을 기재함. (conda를 개선한 것이 mamba라서 fresh하게 mamba install을 수행.) mamba는 거의 conda와 사용법은 같지만 꽤나 빠른 편이다. 사용법은 다음의 conda로 설명한 문서를 참고할 것. http://ds31x.blogspot.com/2023/07/env-conda.html?q=conda [Env] conda 명령어 정리 익숙해지면 conda대신 mamba를 사용하길 권한다. (conda가 너무 느려짐) 패키지 관련 conda install : 패키지 설치. 기본적으로 pip 와 같음. conda install numpy -c 를 통해 특정 channel을... ds31x.blogspot.com .. 2023. 8. 23.
[Python] instance methods, class methods, and static methods Instance Methodsinstance를 통해 접근(=호출)되는 methods를 가르킴.일반적인 methods가 바로 instance methods임. method와 function의 차이점 중 하나로 애기되는"정의될 때 첫번째 parameter가 self이면 method "라는 것은바로 instance methods 를 가르킴.class method인 경우엔 성립하지 않음: 이 경우 첫번째 parameter가 class임.method를 호출한 instance를 의미하는 self를 통해 instance variables (or instance attributes)에 접근가능하며 이들의 처리가 가능함.Class Methodsinstance가 아닌 class를 통해 접근되는 methods를 가르킴. 즉.. 2023. 8. 20.
[Python] Class로 수행시간 측정 decorator 만들기 decorator가 유용하게 사용되는 경우 중 하나가 특정 function 등의 수행시간 측정이다. function으로 decorator를 만드는 경우에 대한 정리는 이전에 했기 때문에 여기선 class로 작성한다. 2023.08.18 - [Python] - [Python] Decorator 해당 decorator는 arguments를 통해 어떤 단위로 측정할지와 cpu시간만을 측정할지 등을 선택할 수 있게 구성함. code는 다음과 같음. import time class DsElapsedTime: def __init__(self, is_sec=True, only_cpu=False): # decorator가 동작 방식을 정의하는 변수 초기화. self.is_sec = is_sec self.only_cpu.. 2023. 8. 18.
[Python] Decorator Python이 제공하는 Decorator는 기존의 function을 수정하지 않으면서 특정 처리를 추가할 수 있게 해주는 도구라고 할 수 있다. Decorate의 "꾸미다"라는 의미에 맞게 기존 function을 꾸며주는 기능을 제공한다. Decorator를 사용하면 코드 중복을 효과적으로 줄여 보다 간결한 형태의 코딩이 가능함. 특히 Python에서는 @를 통한 decorator 사용문법을 통해 매우 간결한 코딩이 가능함. 특정 공통된 처리의 모듈화가 아주 효과적으로 가능하게 해줌. 단점은 wrapper의 사용으로 debuging이 좀 까다로워짐(에러 위치를 찾는게 좀 더 까다로워짐.) Closuer처럼 지나치게 많이 사용시 가독성이 떨어짐. 참고로 이 문서에서는 function으로 decorator를.. 2023. 8. 18.
728x90
반응형