일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 장고
- 알고리즘 풀이
- java
- CSS
- DRF
- 알고리즘 연습
- 알고리즘 문제
- web
- MAC
- PYTHON
- django widget
- django ORM
- form
- Algorithm
- AWS
- js
- Git
- HTML
- Baekjoon
- react
- API
- es6
- 파이썬
- 백준
- c++
- javascript
- Django
- django rest framework
- 알고리즘
- 파이썬 알고리즘
Archives
- Today
- Total
수학과의 좌충우돌 프로그래밍
클래스와 인스턴스란? (2) 모델링 본문
안녕하세요 강민성입니다.
저번 시간에 이어서 클래스와 인스턴스에 대해서
알아보도록 하겠습니다.
모델링이란?
클래스를 사용하는 이유는
현실의 개념을 더 쉽게 코드로 표현하기 위해서 입니다.
저번 시간에 이어서 Human 클래스를 선언하고
이에 현실에 개념을 적용시켜서 추가해보도록 하겠습니다.
1 2 3 4 5 6 7 | class Human(): pass person = Human() person.job = 'student' person.age = 23 | cs |
Human 클래스에 대한 person 객체를 만들어주고
직업, 나이를 지정해주었습니다.
pass는 신경 안쓰셔도 상관없습니다.
그런데 사람이 여러 명일 경우에 모두 직업, 나이가 있을 텐데
다음과 같은 방식으로 선언을 하면 번거로울 겁니다.
그래서 사람을 정의해주는 함수를 한 번 만들어보겠습니다.
1 2 3 4 5 6 7 8 9 10 | class Human(): pass def define_Human(job,age): person = Human() person.job = job person.age = age return person person = define_Human('student',23) | cs |
다음과 같이 define_Human 이라는 함수를 만들고
매개변수로 받은 값들을
넣어주면 위와 같은 의미가 될 것입니다.
다음으로는 define_Human 함수를 Human class에 넣어보도록 하겠습니다.
1 2 3 4 5 6 7 8 9 10 11 | class Human(): pass def define_Human(job,age): person = Human() person.job = job person.age = age return person Human.define = define_Human person = Human.define('student',23) | cs |
마찬가지로 위와 같은 기능을 할 것입니다.
이제는 Human class에 함수를 더 추가해보도록 하겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Human(): pass def define_Human(job,age): person = Human() person.job = job person.age = age return person Human.define = define_Human person = Human.define('student',23) def get_older(person): person.age += 1 print("{}의 나이가 {}가 되었습니다".format(person.job,person.age)) Human.older = get_older person.older() # student의 나이가 24가 되었습니다 | cs |
get_older 라는 나이를 1살 추가해주는 함수를 생성하고
이도 마찬가지로 class의 함수로 바꿔주었습니다.
그리고 그 함수를 실행한 결과
주석과 같이
'student의 나이가 24가 되었습니다'
라고 출력되는 걸 확인 할 수 있습니다.
이와 같이 클래스로 현실의 개념을 표현하는 것을 모델링 이라고 합니다.
마무리
글이 길진 않았지만 여기까지 class를 왜 쓰는지
어떤 느낌인지 아셨을 거라고 생각합니다.
그러면 다음 시간에는 메소드에 대해서 배워보도록 하겠습니다.
'프로그래밍 언어 > Python' 카테고리의 다른 글
python map() 함수에 대해 알아보자! (0) | 2019.01.01 |
---|---|
문자열 함수 find와 index (2) | 2018.12.30 |
Scoping , LEGB 룰 (0) | 2018.12.01 |
클래스와 인스턴스란? (3) 메소드 (0) | 2018.12.01 |
클래스와 인스턴스란? (1) (0) | 2018.11.30 |
Comments