본문 바로가기

Programming/Python25

25. 상속(Inheritance) 오늘은 클래스 기반의 객체 지향 언어들이 지원하는 기능인 상속에 대해 공부해보겠다. 상속이라는 기능은 매우 고급 기술이고, 객체 지향에서 제일 중요하다고 여기는 기술 중 하나이다. 이번에는 너무 딥하게 파지 않고, 간단한 예시를 보며 공부해보겠다. 정말 딥하게 파고 싶다면, C++을 이용하여 공부하는 것을 추천한다. (필자는 C++부터 시작했다) 상속 상속이란, 다른 누군가가 만들어 놓은 기본 형태에 내가 원하는 것만 교체하는 것이 상속이다. 음.. 그러니까 엄마에게서 태어난 아들이 엄마가 가지고 있는 특징들을 가지고 태어나는 느낌이라고 보면 된다. (Ex. 돈도 가능하다) 다중 상속 다중 상속이란, 아까 위에서 설명한 것으로 얘기해보자면, 이번엔 엄마의 특징 뿐만 아니라, 부모님 전체의 특징을 다중으로.. 2021. 3. 28.
24. 프라이빗 변수(Private Variable)와 게터 / 세터 (Getter / Setter) 오늘은 프라이빗 변수와 게터/세터에 대해 알아보겠다. 객체 지향 프로그래밍의 최종 목표는 객체를 효율적으로 만들고 사용하는 것이다. 객체를 효율적으로 사용한다는 것은 어떤 말일까? # 원의 둘레와 넓이를 구하는 객체 지향 프로그램 import math class Circle: def __init__(self, radius): self.radius = radius def get_circumference(self): return 2 * math.pi * self.radius def get_area(self): return math.pi * (self.radius ** 2) # 원의 둘레와 넓이를 구합니다. circle = Circle(10) print("원의 둘레: {:.3f}".format(circle.g.. 2021. 3. 28.
23. 가비지 컬렉터(Garbage Collector) 파이썬으로 프로그래밍을 할 때는 프로그래밍 언어의 내부에서 일어나는 일들에 대해 크게 신경을 쓰지 않아도 된다. 그래도 어느정도는 알아두어야 하는 것이 있는데, 그 중 하나가 가비지 컬렉터이다. 프로그램 내부에서 무언가를 생성한다는 것은 메모리 위에 무언갈 올린다는 의미이다. 참고로 메모리가 부족해지면, 컴퓨터는 하드디스크의 일부를 메모리 처럼 사용하기도 한다. 이러한 동작을 스왑(Swap)이라고 하는데, 하드 디스크의 일부를 메모리 처럼 사용하면 원래 메모리보다 훨씬 느리므로 스왑을 처리하는 속도도 자연스레 느려진다. 여튼, 이게 핵심은 아니고. 프래그램에서 변수를 만들면 데이터가 메모리 위에 올라가고, 계속 만들다 보면 어떻게 될까? 어떻게 되긴, 메모리가 가득 찰것이다. 하지만, 파이썬에서는 가비지.. 2021. 3. 28.
22. 클래스의 추가적인 구문 오늘은 클래스의 추가적인 구문들을 소개하겠다. 클래스를 사용하는 것은 작정하고 속성과 기능을 가진 객체를 만들겠다라는 의미다. 따라서 부가적인 기능 또한 제공하고 있다. 어떤 클래스를 기반으로 그 속성과 기능을 물려받아 새로운 클래스를 만드는 상속, 이러한 상속 관계에 따라서 객체가 어떤 클래스를 기반으로 만들었는지 확인할 수 있게 해주는 isinstance() , 파이썬이 기본적으로 제공하는 str() 함수 등등이 대표적인 예이다. 어떤 클래스의 인스턴스인지 확인하기 객체(인스턴스)가 어떤 클래스로부터 만들어졌는지 확인할 수 있도록 isinstance() 함수를 제공한다. isinstance(인스턴스, 클래스) 첫 번째 매개변수에 객체(인스턴스), 두번째 매개변수에 클래스를 입력한다. 이때 인스턴스 해.. 2021. 3. 27.
21. 클래스 이번에는 클래스와 객체에 대해서 배워보겠다. 파이썬 이외에 내가 배운것은 C, C++, JAVA, 정도이다. 이 중에서 C 빼고는 모두 다 객체 지향 프로그래밍 언어 이다. (C는 절차 지향 프로그래밍 언어) 객체 지향 프로그래밍 언어란 객체를 우선으로 생각해서 프로그래밍한다는 의미이다. 클래스 기반의 객체 지향 프로그래밍 언어는 클래스라는 것을 기반으로 객체를 만들고, 그러한 객체를 우선으로 생각해서 프로그래밍 하는 것을 이념으로 삼고 있다. 객체 프로그램을 만들 때는 우선 '우리가 어떤 데이터를 활용하는가?'를 생각해야 한다. 예를 들어 병원에서 사용하는 업무 프로그램을 만든다면, 의사, 간호사, 환자, 병실, 예약 기록 등등과 같은 데이터를 먼저 고려한다. 추상화 프로그램에서 필요한 요소만 사용해서.. 2021. 3. 26.
20. 모듈 만들기 지금 까지 표준 모듈, 외부 모듈들을 사용하는 방법에 대해 알아보았다. 그렇다면 이 모듈들은 어떻게 만들어지는지에 대해 알아보자. 파이썬은 모듈을 만드는 방법이 간단하다. 단순하게 파이썬 파일을 만들고, 이를 외부에서 읽어 들이면 모듈이 된다. 이 글에서는 원의 반지름과 넓이를 구하는 간단한 모듈을 만들어 보면서 모듈을 만드는 방법, 모듈 실행과 관련된 안전 장치를 설치하는 방법, 패키지를 만드는 방법 에 대해 알아보겠다. 모듈 만들기 먼저 아래 사진 처럼 module_basic 폴더와 main.py , test_module.py 두 파일을 생성해주길 바란다. 그냥 모듈 내부에 변수와 함수 등을 잔뜩 넣어주면 되는데, 간단하게 만들어보겠다. # test_module.py 파일 PI = 3.141592 d.. 2021. 3. 25.

IT_learning's Commit