Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 코딩테스트
- 야근지수
- programmers
- Algorithm
- Interview Preparation Kit
- 매칭점수
- hackerrank
- Special String Again
- 프로그래머스
- Recursion: Davis' Staircase
- python
- 알고리즘
- DFS: Connected Cell in a Grid
- 피보나치 함수
- 해커랭크
- 구슬탈출2
- Roads and Libraries
- 머신러닝
- candies
- Find the nearest clone
- [sqld]자격증합격
- Common Child
- 격파르타 후기
- 격파르타 장점
- Max Array Sum
- Reverse Shuffle Merge
- BFS: Shortest Reach in a Graph
- 격파르타 합격후기
- 백준
- 파이썬
Archives
- Today
- Total
Archive
[파이썬 기초] 클래스 본문
1. 객체지향
- 하나의 객체(오브젝트) 안에 여러 가지 기능을 가진 데이터와 메서드(함수)가 들어 있다.
- 가장 먼저 클래스를 선언하자.
- 그리고 함수와 변수를 클래스 안에서 정의하자.
- 메서드(method)는 def를 사용해 선언한다.
- 클래스 안에 있는 메서드를 정의할 때 첫 번째 인수로 반드시 self를 지정해야 한다.
- 변수를 속성(Property)라 부른다.
2. 클래스로 오브젝트를 생성한다
1 2 3 4 5 6 7 | # Human이라는 클래스를 기초로 하여 오브젝트를 생성한다. hum = Human() # Human 클래스 안에 정의한 메서드를 호출한다. hum.take("banana") hum.eat() | cs |
- 하나의 클래스를 정의하면 인스턴스를 얼마든지 생성할 수 있다.
3. self 인수
- 'self'인수는 인스턴스 자신을 나타낸다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 클래스를 정의한다 class HumanName: def setName(self, name): self.name = name def getName(self): return self.name gildong = HumanName() gildong.setName("Gildong") print(gildong.getName()) # Gildong | cs |
4. 생성자 - 인스턴스를 초기화하는 메서드
- 데이터를 준비하는 작업을 '초기화 메서드'라고 부르는 메서드에서 실시한다.
- 인스턴스를 초기화하는 메서드를 '생성자(constructor)'라고 부른다.
- '__init()__'메서드 이다.(인스턴트를 생성할 때 자동으로 init메서드가 실행된다.)
5. 클래스 변수와 인스턴스 변수
- 인스턴스 변수 : 인스턴스마다 서로 다른 값을 설정할 수 있게 준비해둔 변수
- 클래스 변수 : 모든 인스턴스에서 공통으로 사용하는 변수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Cat: # 클래스 변수 cat_sound = "nya-" # 메서드 def sounds(self): print(Cat.cat_sound) mike = Cat() mike.sounds() # nya- nora = Cat() nora.sounds() # nya- # 클래스 변수 변경 Cat.cat_sound = "myu-" # 모든 인스턴스에서 값이 변경 nora.sounds() # myu- mike.sounds() # myu- | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Cat: # 클래스 변수 cat_sound="nya-" # 메서드 def sounds(self): print(self.cat_sound) mike = Cat() nora = Cat() # 울음소리 변경 mike.cat_sound = "myu-" mike.sounds() # myu- nora.sounds() # nya- | cs |
- 여기서 'mike.cat_sound'에 값을 대입했을 때 클래스 변수 'cat_sound'가 아닌, 이름만 같고 다른 변수인 인스턴스 변수 'cat_sound'가 생성되고 이 변수에 값을 대입하게 된다.
'공부 > Python' 카테고리의 다른 글
[파이썬 기초] 비공개 멤버와 정적 메서드 (0) | 2017.10.04 |
---|---|
[파이썬 기초] 상속 (0) | 2017.10.03 |
[파이썬 기초] 데코레이터 (0) | 2017.10.03 |
[파이썬 기초] 리스트 내장 표기 (0) | 2017.10.03 |
[파이썬 기초] 정규표현 (0) | 2017.10.03 |
Comments