티스토리 뷰
다음은 간단한 클래스의 예제이다.
세부 내용을 살펴보자.
class Dog:
def __init__(self, weight, name):
self.weight = weight
self.name = name
def eat(self, food):
self.weight += food
def howl(self):
print("howl!", self.name)
def __repr__(self):
return f"name={self.name} weight={self.weight}"
d = Dog(10, "baduk")
d.eat(5)
d.howl()
print(d)
[네이밍 컨벤션]
class 이름은 CamelCase 로 정의한다.
class 내부 함수들은 snake_case 로 정의한다.
[더블언더스코어]
__는 더블언더 스코어 혹은 덴더, 던더라고 하는데
__init__, __repr__ 같이 더블언더스코어가 붙은 함수들은
미리 정해진 용도에 호출이 된다.
__init__ 는 생성자가 호출될때
__str__, __repr__ 은 인스턴스가 문자열 취급 받을 때
print(instance) 일때 호출된다.
[self]
클래스 내부 모든 함수들이 기본적인 매개변수로 가지고 있다.
이것은 클래스 함수를 호출하는 인스턴스 자기 자신을 뜻한다.
인스턴스의 대명사 정도로 인식하면된다.
self 는 매개변수로 들어가지만 실제로는 매개변수로 입력받지 않고
나머지 인자만 입력받는다.
[__init__]
클래스는 변수와 함수로 나누어 정의할 수 있다.
변수들을 미리 초기화자에 정의하는 것을 권장한다.
__init__ 는 초기화자 라고 한다.
일부에서는 생성자라고 하지만 이것도 완전 틀린말은 아니다.
초기화자에서 클래스에서 사용할 모든 변수를 초기화 해주는데
초기화자외부에서 초기화 해주는건 권장되지 않는다.
초기화자에서 weight, name 을 매개변수로 입력받아서
weight 는 10, name 는 baduk 이라고 초기화 하였다.
d = Dog(10, "baduk")
이렇게 Dog 클래스의 d 인스턴스는 2개의 변수를 초기화 되었다.
[instance]
인스턴스는 클래스를 구현된 실체를 의미한다.
인스턴스에서는 자신의 변수나 함수를 접근할 수 있다.
d.eat(5)
d.weight = 10
인스턴스 내부 변수를 직접 접근할 수는 있으나
값을 바꾸는 것은 oop 관점에서 권장되는 방법이 아닐수도 있다.
'python lecture > basic' 카테고리의 다른 글
[edu] duck typing(덕 타이핑) (0) | 2019.02.25 |
---|---|
[edu] Stack/Queue (스택/큐 자료구조) (0) | 2019.02.24 |
[edu] EAFP VS LBYL (허락보다 용서구하는 것이 쉽다) (0) | 2019.02.22 |
[edu] 모듈 만들기 (create module) (0) | 2019.02.21 |
[edu] Test Driven Development (TDD, 테스트 주도 개발) (0) | 2019.02.20 |
- Total
- Today
- Yesterday
- PuTTYGen
- 엑셀 비교
- virtualenv
- django chatbot
- gitignore
- chatbot
- Python
- 장고
- GIT
- 파이썬 프로그래밍
- 파이썬
- 장고 플러스친구 자동응답
- 플러스친구 자동응답
- 문과 코딩
- pycrypto
- Tistory
- django
- 장고 카톡 자동응답
- 모바일 스킨 적용
- admin.py
- 파이썬 강좌
- 문서 비교
- 파이썬 입문
- gitlab
- wsgi
- 이미지 비교
- 파이썬 독학
- 면접답변
- 모바일 테마 적용
- 면접정답
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |