티스토리 뷰
객체지향 프로그래밍
- 여러개의 독립된 단위, 즉 '객체'들의 모임으로 파악하고자 하는 것
- 유지보수가 간편하고 직관적인 코드 분석이 가능
- 변수가 추가 될 가능성을 생각하여 함수를 이용하면 효율적임
- 함수보다 더 효율적인 것은 '클래스'임
클래스
-
객체를 조금 더 효율적으로 생성하기 위해 만들어진 구문
- class 클래스 이름: 클래스 내용
- class로 정의!
- 인스턴스: 클래스로부터 만들어진 객체
- 밑에 코드의 결과 값: print(a) -> 0 / print(x.a) -> 1
a = 0
class S1:
a = 1
x = S1() #인스턴스
print(a)
print(x.a)
-
클래스는 별도의 이름공간이 할당된다.
- 인스턴스 또한 별도의 이름공간을 할당할 수 있음
메소드
정의
-
(중요) 일반적인 함수와 똑같이 정의하지만 첫 번째 매개변수로 self를 사용!
- self는 인스턴스 객체 자신의 레퍼런스를 지니고 있음 -> 각 인스턴스들은 self를 활용해 자신의 이름공간에 접근 가능하다.
호출
-
인스턴스 객체를 활용한 메소드 호출(self인자를 활용)
- 클래스 객체를 이용한 메소드 호출
- 밑에 코드의 결과 값: 첫번째 출력 값 10 / 두번째 출력 값 10
class MyClass:
def class_set(self, v):
self.value = v
def class_get(self):
return self.value
c = MyClass()
c.class_set('10')
print(c.class_get())
c = MyClass() # 인스턴스 생성
MyClass.class_set(c,'10')
print(MyClass.class_get(c))
- 객체 내부의 메소드를 호출할 수 있음
- 객체 내부 메소드를 호출할 때 주의해야할 점: self를 적어주지 않으면, 외부에서 해당 메소드를 찾게 된다.
정적 메소드
-
인스턴스 객체와 무관하게 클래스 이름공간에 존재하는 메소드
- 클래스 이름을 이용하여 직접 호출 가능- 장식자 @staticmethod 사용
class D:
@staticmethod
def spam(x, y): #self가 없음
print('static method', x, y)
#인스턴스 객체 없이 클래스에서 직접 호출
D.spam(1, 2)
d = D()
#인스턴스 객체를 통해서도 호출 가능
d.spam(1, 2)
클래스 멤버와
- 클래스 멤버: 클래스 이름공간에 생성, 모든 인스턴스에 공유
- 인스턴스 멤버: 인스턴스 이름공간에 생성, 인스턴스마다 독립
생성자와 소멸자
-
생성자: 객체(인스턴스)가 생성될 때 자동으로 호출되는 함수
- __init__으로 정의(__의 의미는 예약된 이름, __name__, __main__등)
- 일반적으로 객체가 보유해야 할 변수나 자원들의 초기화를 하는 코드를 작성
- 소멸자: 객체(인스턴스)가 소멸될 때 자동으로 호출되는 함수
- __del__으로 정의,
- 일반적으로 객체가 점유하고 있는 메모리나 기타 자원들의 해제를 하는 코드 작성
나만 알아볼 수 있는 요약ㅠㅠ
더보기
Class 클래스 이름:
def 함수 이름(변수): => method
객체 < = 인스턴스 명 = 클래스()
실행할 때는 객체.메서드
'파이썬 > 클래스' 카테고리의 다른 글
파이썬 클래스의 활용 실습해보기2 (상속) (0) | 2020.11.04 |
---|---|
파이썬 클래스의 활용 실습해보기1 (연산자 오버로딩 활용) (0) | 2020.11.04 |
파이썬 클래스 활용 (0) | 2020.11.04 |
클래스 파이썬 실습해보기 (0) | 2020.11.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 경제신문
- plot
- 데이터분석
- 코테
- 그래프
- 자바
- 프로그래밍
- 영어회화
- 머신러닝
- 코드
- mysql
- SW
- 스마트워치
- 데이터
- 영어
- 클래스
- 개발
- R
- 보안
- sql
- 코딩테스트
- 함수
- Programming
- 경제
- 코딩
- 파이썬
- 모듈
- python
- 금리
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함