본문 바로가기

반응형

Python Tutorial

(46)
[Python] 클래스(class) #5 special method 목차 파이썬 클래스 소개 instance vs static dict vs slots property의 활용 >> special method callable object 클래스 데코레이터(class decorator) 상속 추상 클래스와 추상 메소드 스페셜 메소드(special method)란? 스페셜 메소드는 특정 상황에서 자동으로 호출 되는 메소드(이름이 약속되어 있는 메소드)들을 일컫는 말이다. 스페셜 메소드는 __xx__() 형태, 앞에 언더바 두 개, 뒤에 언더바 두개 형태를 가진다. 스페셜 메소드는 파이썬 표준 타입과 유사하게 동작하는 클래스를 설계하기 위해서 반드시 필요하다. 약 100여개가 넘는 스페셜 메소드가 있다. 스페셜 메소드의 사용 예 스페셜 메소드는 특정 상황에서 자동 호출 되는 미..
[Python] 클래스(class) #4 property 이번 시간에는 클래스 필드의 getter와 setter를 쉽게 만들어 줄 수 있는 property라는 문법에 대해 살펴 보도록 하겠다. 이번 포스트에서는 사용법 위주로 익히고, 원리에 대한 자세한 설명은 뒤에 descriptor를 다루면서 추가 하도록 하겠다. 목차 파이썬 클래스 소개 instance vs static dict vs slots >> property의 활용 special method callable object 클래스 데코레이터(class decorator) 상속 추상 클래스와 추상 메소드 getter와 setter 먼저 프로퍼티에 대해 살펴보기 전에 우리는 getter와 setter의 개념에 대해 알아야 한다. getter와 setter는 C#이나 Java에서도 많이 사용되는 개념으로써,..
[Python] 클래스(class) #3 __dict__ vs __slots__ 이번 포스트에서는 메모리 절약과 필드 생성을 제어 할 수 있는 __slot__에 대해 살펴 보도록 한다. 목차 파이썬 클래스 소개 instance vs static >> dict vs slots property의 활용 special method callable object 클래스 데코레이터(class decorator) 상속 추상 클래스와 추상 메소드 __dict__ 이전 포스트 '클래스(class) #2 instance vs static'에서 우리는 파이썬 클래스의 인스턴스 필드를 생성하면 클래스 객체의 __dict__어트리뷰트에 저장된다는 것을 배웠다. __dict__에 필드를 저장하게 되면 단점이자 특징이, 외부에서 "새로운 필드(멤버)를 자유롭게 추가" 할 수 있다는 것이다. 예를 들어 클래스 내..
[Python] 클래스(class) #2 instance vs static 이전 포스트에서는 파이썬 클래스의 기본 문법과 인스턴스 필드에 대해 살펴 보았다. 이번 시간에는 이전 포스트에 이어 클래스의 스태틱(static) 필드와 함수에 대해 알아 보도록 하겠다. 목차 파이썬 클래스 소개 >> instance vs static dict vs slots property의 활용 special method callable object 클래스 데코레이터(class decorator) 상속 추상 클래스와 추상 메소드 instance vs static 객체 지향 프로그래밍을 하다 보면 인스턴스 필드와 스태틱 필드라는 용어를 들을 수 있다. 이전 포스트에서 "필드"라는 것은 클래스 내부의 데이터를 의미한다는 것을 배웠다. 그럼 이번에 언급되는 instance와 static의 차이는 무엇일까?..
[Python] 클래스(class) #1 소개 이번 포스트 부터 파이썬의 클래스에 대해 알아 보도록 한다. 문법도 잘 모르는데 클래스란 무엇인지 어떻게 쓰는지 장황하게 설명해봐야 처음에는 잘 이해되지 않을 것이다. 우선은 문법 위주로 강의를 진행하고 개론적인 접근은 차차 예제들과 함께 깊이 파고 들어가도록 하겠다. 당장 이해 되지 않아도 멈추지 말고 계속 앞으로 진행해 나가도록 하자. 어차피 앞으로 다뤄질 포스팅에서 지겹도록 계속 언급 된다. 목차 >> 파이썬 클래스 소개 instance vs static dict vs slots property의 활용 special method callable object 클래스 데코레이터(class decorator) 상속 추상 클래스와 추상 메소드 클래스(class) 문법 클래스가 뭔지, 어떤 개념이 있는지 앞..
[Python] functools.partial() 이번 포스트에서는 functools 모듈의 partial 함수에 대해 짧고 굵게 집고 넘어 가도록 한다. 날씨가 많이 더워졌다. 다들 건강 관리 잘 하도록하자. 프로그래머는 지식 노동자가 아니다. 오래동안 고도의 집중력을 유지 할 수 있는 체력이 중요한 육체 노동자다. partial 함수란? functools.partial(func, /, *args, **keywords) partial 함수는 호출 될 때 positional argument(위치 기반 인자) args와 keyword argument(키워드 인자) keywords로 호출 된 함수 func처럼 동작하는 새 partial 객체를 반환한다. ※ positional argument, keyword argument, 함수 인자 리스트 사이에 있는 ..
[Python] 데코레이터(Decorator) #4 활용 이번 강좌는 데코레이터 시리즈의 마지막 강좌로써 Decorator #1, Decorator #2, Decorator #3와 이어지는 내용이다. 지난 강좌를 보지 않으면 이해하기 어려운 부분이 있으므로 꼭 이전 강좌들을 먼저 볼것을 추천한다. 목차 파이썬 데코레이터 소개 함수의 인자와 리턴값 처리하기 인자를 가지는 데코레이터 >> 데코레이터 활용 데코레이터 활용 이번 시간에는 지금 까지 배운것을 토대로 객체에 함수를 등록해주는 register라는 데코레이터를 만들어 보도록 하겠다. 종종 유용하게 쓰이는 패턴이므로 주의 깊게 살펴 보도록 하자. 먼저 데코레이터가 적용 되지 않은 코드를 먼저 살펴보자. # 객체(obj)에 함수(func)를 등록하는 함수 def register(obj, func) : setat..
[Python] 데코레이터(Decorator) #3 인자를 가지는 데코레이터 이전 강좌에서 functools 모듈의 wraps 데코레이터를 사용하면서 지금까지 우리가 배웠던 데코레이터와는 다르게 인자를 사용하고 있는 것을 보았다. 이번 강좌에서는 이와 같이 인자를 받을 수 있는 데코레이터에 대해 알아 보도록 하겠다. 목차 파이썬 데코레이터 소개 함수의 인자와 리턴값 처리하기 >> 인자를 가지는 데코레이터 데코레이터 활용 인자를 가지는 데코레이터 지금까지 우리가 만든 add_emoticon 예제는 한가지 이모티콘 밖에 출력 할 수 없었다. 이제 아래 예제 처럼 add_emoticon 함수가 인자를 가질 수 있도록 개선하여 고정된 이모티콘이 아닌 인자로 넘겨 받은 문자열을 출력 할 수 있도록 해보자. # @add_emoticon # say_hello = add_emoticon(say..
[Python] 데코레이터(Decorator) #2 함수의 인자와 리턴값 처리 이번 포스트는 인자와 리턴 값을 갖는 함수에 데코레이터를 적용하는 방법에 대해 알아 본다. 또한 함수를 데코레이팅함으로써 발생하는 함수의 메타 정보에 대한 문제들과 그 해결 방법에 대해 집중적으로 다루도록 하겠다. 목차 파이썬 데코레이터 소개 >> 함수의 인자와 리턴값 처리하기 인자를 가지는 데코레이터 데코레이터 활용 함수 인자와 리턴값 처리하기 [이전 강의]의 예제에서는 인자와 리턴 값이 없는 함수를 대상으로한 데코레이터 예제를 살펴 보았다. 그렇다면 아래와 같이 say_hello 함수에 인자가 추가 되면 어떻게 될까? def add_emoticon(func) : def inner() : print('= ̄ω ̄= ', end='') func() return inner @add_emoticon def sa..
[Python] 데코레이터(Decorator) #1 소개 이번 포스트 부터 파이썬의 핵심 기능 중 하나인 데코레이터(Decorator)에 대해 살펴 볼 예정이다. 데코레이터는 앞으로 나올 강좌에서도 종종 등장할 예정이므로 집중해서 읽도록 하자. 목차 >> 파이썬 데코레이터 소개 함수의 인자와 리턴값 처리하기 인자를 가지는 데코레이터 데코레이터 활용 데코레이터란? 데코레이터(Decorator)는 '장식하다', '꾸미다'라는 뜻으로 함수(또는 클래스 메소드)를 꾸며준다고 해서 이런 이름이 붙었다. 파이썬의 데코레이터는 기존 함수의 이름과 사용성을 변경하지 않는 상태에서, 함수에 추가 기능을 구현할 때 사용 되는 파이썬의 주요 특징 중에 하나다. 데코레이터는 기존 함수를 변경하지 않으면서 함수에 기능을 추가 할 때 사용된다. 예를 들어 아래와 같은 say_hello..

반응형