본문 바로가기

프로그래밍 기초5

파이썬 처음 배우기: VIII. 객체와 클래스, 4부 클래스에 익숙해지기, 2편 지점 이름 아이스크림 종류 데이터 타입 주문하기 메서드 아이스크림 체인점 클래스 파이썬 처음 배우기: VIII. 객체와 클래스, 3부 클래스에 익숙해지기, 2편 3부 클래스에 익숙해지기, 1편에서는은행 계좌를 클래스로 구현했습니다. 2편에서는 아이스크림 체인점을 클래스로 만들어 보겠습니다. 2. 아이스크림 체인점 클래스 시작은 가볍게! 속성은 지점 이름과 아이스크림 종류면 충분합니다. 지점 이름은 문자열이겠죠? 그렇다면 메뉴는 어떤 타입이 어울릴까요? class Chain: ''' 간단한 아이스크림 체인점 클래스 ''' branch_name: str # flavors: ? 2.1지점 이름 문자열 타입으로 처리해서 다음처럼 인스턴스를 만들 때 지정하면 간편할 것 같습니다. >>> hdae = Chain('.. 2021. 8. 28.
파이썬 처음 배우기: VIII. 객체와 클래스, 3부 클래스에 익숙해지기, 1편 은행 계좌 클래스의 기본 구조 vars() __repr__() 메서드 구현하기 파이썬 처음 배우기: VIII. 객체와 클래스, 3부 클래스에 익숙해지기, 1편 1부와 2부에서는 클래스가 무엇이고 어떻게 만드는지 살펴봤습니다. 앞으로 몇 번에 걸쳐 클래스에 익숙해지는 시간을 갖겠습니다. 물론 그러는 동안 새로운 개념과 파이썬 구조를 함께 살펴보겠습니다. 1. 은행 계좌 클래스 첫 번째로 만들 클래스는 은행 계좌입니다. 시작은 단순한 게 좋겠죠? 계좌명과 잔액을 나타내는 속성 두 개와 입금과 출금, 잔액 조회를 나타내는 메서드 세 개로 출발하겠습니다. 일단 다음처럼 이름을 붙여 클래스의 틀을 만들 수 있을 겁니다. 1.1 기본 구조 만들기 # cl_account.py 1 2 3 4 5 6 7 8 9 10 1.. 2021. 8. 19.
파이썬 처음 배우기: VIII. 객체와 클래스, 2부 안성맞춤 인스턴스 초기화 메서드 __init__() 최종 Cup 클래스 VIII. 객체와 클래스, 2부. 안성맞춤 인스턴스 앞글에서는 객체라는 개념을 살펴보고 객체를 구체화할 수 있는 클래스와 클래스의 생산품이랄 수 있는 인스턴스에 대해 소개했습니다. 구체적으로는 단순하게나마 컵을 클래스로 구현하고 이에 따라 두 개의 컵 인스턴스를 만들었죠. 잠시 기억을 떠올려 볼까요? 아래는 컵 클래스입니다. # cl-cup_drink.py 1 2 3 4 5 6 class Cup: size = 'venti' vol = 100 def drink(self): self.vol -= 10 단, 이번에는 클래스 모듈을 실행하지 않고 import로 가져와 인스턴스를 만들겠습니다. 그러려면 파이썬 셸이 아니라 소스 코드 파일을 작성해야겠죠? # c.. 2021. 8. 6.
파이썬 처음 배우기: VIII. 객체와 클래스, 1부 개념과 구체화 개념 속성 인스턴스 메서드 self VIII. 객체와 클래스, 1부 개념과 구체화 한국어나 영어 같은 자연어는 현실 세계의 어떤 대상을 표현합니다. 같은 맥락에서 생각해 보면 프로그래밍 언어도 어떤 대상을 표현할 수 있겠죠. 이런 생각이 객체object라는 개념으로 구체화되었습니다. 말이 어려워 객체지 현실 세계의 대상과 다르지 않습니다. 그럼 카페에서 사용하는 현실 세계의 컵을 프로그래밍 언어로 구현해 볼까요? 구현하는 방법은 프로그래밍 언어마다 크게 다르지 않습니다. 파이썬에서는 class 키워드를 사용해 객체의 특징들을 나열합니다. 한마디로 객체는 대상과 같은 말이고, 클래스는 객체를 구현하는 수단인 거죠. 객체 정의하기 컵의 특징은 많겠지만 여기서는 컵의 사이즈(size)와 남은 음료의 양(vol.. 2021. 8. 4.
파이썬처음배우기: VII. 함수 만들기, 6부 모듈(feat. 도움말) matrix_2.py realize(choice) matrix2_all.py mtrx.py matrix2_mo.py mtrx.py (final) 6부 모듈(feat. 도움말) 정의된 함수들을 같은 소스 코드에서만 사용할 수 있다면 그저 상식적인 차원에서 생각해 보더라도 이는 비효율의 극치입니다. 더구나 다른 사람이 그 함수들을 사용하기 위해서는 코드 자체를 ‘복붙’해야 할 텐데, 이 역시도 어불성설입니다. 어떤 해결 방법이 있을까요? 상식적인 차원에서 생각해 보자면, 함수들만 따로 솎아 내어 파일로 저장한 후, 메인 소스 코드에서 그 파일을 가리키게 하는 것이 좋을 듯합니다. 실제로 이 파일을 모듈module이라고 부르는데, 7장 함수 만들기 1부에서 작성한 matrix_2.py 파일로 예를 들어 보겠습.. 2020. 8. 28.