본문 바로가기

Archive/Python6

@decorator2 1. wrapper? 영어를 잘 못해서 뭔지 한참 찾아봤다. 파이썬에서 데코레이터를 선언 할 때 매번 쓰는 함수인데, 함수의 이름을 무조건 wrapper로 정해야 한다고 생각했는데, 그게 아니었다..! wrapper : 포장지, 싸개 하... 매번 랩핑해라 랩핑해라 하면서 저 단어의 뜻을 몰랐다니... 함수의 이름을 wrapper로 사용하는 이유는 단순히 해당 기능이 다른 함수를 실행하기 전에 포장하는 기능이기 때문이었다!! 2. func -> obj 파이썬에서 함수는 func로 불러와야 하는 것이 아니라 객체 형태로 받아들여지게 된다. 따라서 함수를 출력하게 되면 객체의 주소값이 나오는 것을 확인 할 수 있으며, 위의 코드를 보게 되면 f2라는 함수에서 f를 인자로 받고 있고, f를 함수로 실행 할 수.. 2022. 2. 28.
@decorator 1. Justies decorator A decorator is a design pattern in Python that allows a user to add new functionality to an existing object without modifying its structure. 데코레이터란 기존에 존재하는 구문을 수정하지 않고, 새로운 기능을 추가하게 해주는 것 2. What is decorator - Study with example def main_function(): print "MAIN FUNCTION START"라는 코드가 있다고 해보자 이러한 함수에 앞뒤로 현재 시간을 출력하는 함수를 추가하려고 하면 import datetime def main_function(): print dat.. 2022. 2. 28.
Lazy Evaluation 1. What is Lazy Evaluation 1. 위키백과 컴퓨터 프로그래밍에서 느긋한 계산법(Lazy evaluation)은 계산의 결과값이 필요할 때까지 계산을 늦추는 기법이다. 두 가지 관련된 항목들이 있는데 지연 계산법과 최소 계산법이다. 느긋하게 계산하면 필요없는 계산을 하지 않으므로 실행을 더 빠르게 할 수 있고, 복합 수식을 계산할 때 오류 상태를 피할 수 있고, 무한 자료 구조를 쓸 수 있고, 미리 정의된 것을 이용하지 않고 보통 함수로 제어 구조를 정의할 수 있다. 느긋한 계산법을 사용하는 언어들은 "이름으로 호출"하거나 "필요할 때 호출"하는 계산 전략을 사용하는 것으로 나눌 수 있다. 하스켈과 같은 대부분의 실제 느긋한 언어들은 성능상의 이유로 "필요할 때 호출" 전략을 사용한다... 2022. 2. 28.
SYS & Path 1. SYS란? 1. sys module Python은 여러개의 모듈이 합쳐져 프로젝트를 생성한다. 개발자 개인이 패키지, 모듈을 만들어서 추가할 수도 있고, pip을 이용해 여러가지 패키지를 추가 할 수 있다. 아래의 방법으로 import 할 수 있는데 python은 어떻게 모듈과 패키지를 찾는것일까 import something2. search order sys.modules => built-in modules => sys.path 2. sys.module vs sys.path 1. sys.module Python이 모듈과 패키지를 찾기 위해 가장 먼저 보는 구역이며, 아래와 같이 dict형태로 저장되어 있다. python을 사용하며 한 번 이상 import 한다면 해당 구역에 저장이 되고, 추후에는.. 2022. 2. 28.