본문 바로가기

Language/Python15

[Python] 데코레이터(Decorator) 데코레이터는 함수를 받아서 새로운 함수를 만들어 반환하는 함수로 정의할 수 있다. 데코레이터를 사용하려면 다음과 같은 내용이 선행되어야 합니다. 클로저 일급 함수 가변 인자 인자 언패킹(argument unpacking) 데코레이터의 장점 중복 제거, 코드 간결, 공통 기능 작성 로깅, 프레임워크, 유효성 체크 등을 공통적으로 실행할 수 있습니다. 예를 들어 함수의 실행시간을 측정하려고 하면 함수 사이에 넣는 것이 아닌 시작시간, 종료시간을 측정해주는 함수를 데코레이터(Decorator)로 만들어 놓고 나머지 함수에 장식(Decorate)를 하는 것 입니다. 함수 실행 시간 측정을 100개의 함수를 측정한다고 가정할 때, 데코레이터를 통해서 실행되기 때문에 공통 기능으로 실행시킬 수 있습니다. 조합해서 .. 2021. 11. 17.
[Python] Scope에 대한 이해 모듈은 전역 이름공간을 가지고 있어서 모듈 내부에 작성된 함수나 클래스가 이름공간에 정의된 변수를 참조할 수 있다. 모듈에 정의된 함수는 지역 이름공간을 가지고 있어서 이 함수 내부에 또 함수를 정의하면 지역 이름공간이 만들어진다. 이렇게 이름공간에 있는 변수를 참조하여 범위를 정하는 규칙을 스코프(scope)라고 한다. 스코프에 따라 변수를 참조할 수 있어 규칙을 벗어나면 예외가 발생한다. 1. 지역변수를 할당 없이 처리 함수 func를 정의할 때 매개변수는 x, y 2개 이고 내부에 변수 result에 더한다. 모두 3개의 지역변수가 만들어진다. def func(x, y): #에러 result = result + x + y return result 함수에 2개의 인자를 넣고 실행하면 예외가 발생한다... 2021. 11. 10.
[Python] 네임드 튜플(Named Tuple) 전문적인 정보를 다루는 것이 아닌 개인적으로 학습한 내용에 대해 포스팅을 했기 때문에 이점을 감안하여 봐주시면 감사하겠습니다👏 네임드 튜플(Named Tuple) 클래스와는 다르고 collection module 하위에 있으며, dictionary 형태와 같이 key와 value 형태로 mapping 됩니다. 튜플인데 딕셔너리 형태를 갖고 있습니다. 요소에 key 또는 index로 접근할 수 있으며 데이터를 가공하거나 주고받을 때 독특한 성질을 갖고 있습니다. # 네임드 튜플 from collections import namedtuple # 네임드 튜플 선언 Point = namedtuple('Point', 'x y') pt3 = Point(1.0, 5.0) # 클래스 형태로 튜플을 추상화 하고 있습니다.. 2021. 10. 26.
[Python] 매직 메서드(Magic Method) 전문적인 정보를 다루는 것이 아닌 개인적으로 학습한 내용에 대해 포스팅을 했기 때문에 이점을 감안하여 봐주시면 감사하겠습니다👏 매직 메서드(Magic Method) 클래스 안에 정의할 수 있는 특별한(Built-in) 메서드입니다. 때론, 스페셜 메서드(Special Method)로 불리기도 합니다. 특별하다는 의미(?): 이미 만들어진 것을 예를 들어, 3 + 3 을 했을 때, 6이 나오는 것처럼 어떤 특별한(Built-in) 메서드가 동작을 해서, 결과값이 6이 나오는 것인지, 좀 더 낮은 레벨에서, 클래스 기반으로 코딩을 할 수 있도록 도와주는 메서드 매직 메서드를 이해해야 클래스를 좀 더 풍부하게 사용하고, 시퀀스를 이해해야 반복과 함수를 좀 더 편리하게 사용할 수 있습니다. print(int) .. 2021. 10. 24.