본문 바로가기

반응형

진리는어디에

(289)
[Python] 모듈(module) 이번 포스트에서는 코드 재사용의 끝판왕 '모듈(module)'에 대해 살펴보겠다. 정확한 사용법을 언급하진 않았지만 지금까지 예제들에서도 이미 많이 써왔던 것이라 큰 거부감은 없을 것이라 생각 한다. 가벼운 마음으로 읽고 넘어 가도록 하자. 파이썬 모듈 임포트 만일 여러분이 어떤 함수를 정말 잘 만들었다고 가정하자. 그럼 이 함수를 다른 파이썬 프로그램에서도 가져다 사용하고 싶은데 어떻게 해야 할까? 지금까지 여러분이 표준 파이썬 모듈을 임포트(import) 했던 것과 똑같이 사용 할 수 있다. 예를 들어 아래와 같이 여러분은 'mylib.py'라는 파이썬 파일을 만들고 그 안에 함수를 작성했다고 가정하자. # file: mylib.py def add(a, b) : return a + b def mul(..
[Python] 디스크립터(Descriptor) 이번 포스트에서는 파이썬의 디스크립터에 대해 배워보자. 디스크립터는 이전에 배웠던 classmethod, staticmethod, property 등을 구현 할 때 사용되는 중요한 파이썬 기능중에 하나다. 디스크립터 자체는 어렵지 않지만 각 개념들이 서로 꼬여있어 순서대로 차근 차긴 설명하기가 다소 어렵다. 처음에는 간단한 예제 부터 시작해 점차로 발전 시켜 나가는 형태로 설명이 앞뒤로 약간 왔다 갔다 할 수 있으니 집중해서 따라 오도록 하자. 그리고 포스트 끝에는 요약을 덧붙여 앞의 내용들을 다시 한번 상기 할 수 있도록 할 예정이니 맨 마지막은 꼭 읽어 보도록 하자. 지금 까지 강의들은 이런게 있다는 것만 알고 넘어가는 정도로 봐달라고 했는데, 이번 강의는 앞의 다른 강의들과는 다르게 처음 부터 끝까..
[Python] 클래스(class) #9 추상 클래스와 추상 메소드 이번 포스트는 파이썬 클래스 시리즈의 마지막 장으로 파이썬 클래스의 추상 클래스와 추상 메소드에 대해 알아보도록 하겠다. 이 강의는 이전에 배운 클래스 상속과 이어진다. 목차 파이썬 클래스 소개 instance vs static dict vs slots property의 활용 special method callable object 클래스 데코레이터(class decorator) 상속 >> 추상 클래스와 추상 메소드 추상 클래스(abstract class)란? 파이썬은 추상 클래스(abstract class)를 제공한다. 추상 클래스란 구현 내용이 없고 메소드 목록만 가진 클래스이며, 추상클래스 자체로는 인스턴스화가 불가능 하다. 추상 클래스는 클래스의 메소드를 상속 받는 파생 클래스에게 구현하도록 강제하..
[Python] 클래스(class) #8 상속 이번 포스트에서는 파이썬 클래스의 상속에 대해서 알아 보도록 하겠다. 상속의 기본 문법을 시작으로 상속과 관련된 문제와 그 문제들의 해결 방법을 알아 본다. 목차 파이썬 클래스 소개 instance vs static dict vs slots property의 활용 special method callable object 클래스 데코레이터(class decorator) >> 상속 추상 클래스와 추상 메소드 클래스 상속이란 클래스의 '상속'이란, 기존에 정의 되어 있는 클래스에 정의 된 속성(필드와 메소드들)을 이어 받아, 그대로 사용하거나 수정 또는 다른 속성들을 추가하여 사용하는 것을 말한다. 기존에 정의 되어 있던 클래스를 기초 클래스(base class) 또는 부모 클래스(parent class), 상..
[Python] 클래스(class) #7 클래스 데코레이터 이번 포스트에서는 이전에 배운 callable object를 이용하여 클래스 형태의 데코레이터(decorator)를 만들어 보도록 하겠다. 목차 파이썬 클래스 소개 instance vs static dict vs slots property의 활용 special method callable object >> 클래스 데코레이터(class decorator) 상속 추상 클래스와 추상 메소드 Callable Object 와 Decorator 본격적인 설명에 앞서 이전 강좌를 못 본 분들도 있을 것이므로 callable object와 decorator에 대해 간단한 한줄 요약을 정리하고 넘어 가도록 하겠다. 자세한 사항은 각 링크된 포스트들을 살펴 보도록 한다(아무리 요약이 있더라도 꼭 살펴 보도록 하자). ca..
[Python] 클래스(class) #6 callable object 이번 포스트는, 이전 #5 special method에 이어 객체를 함수 처럼 사용 할 수 있는 callable object라는 개념에 대해 살펴 보고, __call__ 스페셜 메소드를 이용해 어떻게 만드는지 알아 볼 것이다. 또한, 객체를 함수 처럼 사용 할 수 있을 때 얻을 수 있는 장점에 대해서도 살펴 보도록 한다. 이번 장은 나중에 나올 클래스 데코레이터나 기타 많은 부분에서 유용하게 사용되므로 주의 깊게 살펴 보도록 하자. 목차 파이썬 클래스 소개 instance vs static dict vs slots property의 활용 special method >> callable object 클래스 데코레이터(class decorator) 상속 추상 클래스와 추상 메소드 __call__ 스페셜 메소..
[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의 차이는 무엇일까?..

반응형