본문 바로가기
프로그래밍/Python

[Python] 객체지향프로그래밍(OOP, Object Oriented Programming)_class, instance, method

by 소꿍 2020. 4. 24.

객체지향 프로그래밍(OOP, Object Oriented Programming)

  : 객체를 중심으로 하는 프로그래밍

 

그렇다면 객체는 무엇인가?

 

객체의 중요한 개념 두 가지: Class, Instance

 

클래스(Class)는 함수(logic)와 변수(data)를 담고 있는 그릇

인스턴스(Instance)는 클래스를 복제한 것. 클래스를 복제했기 때문에 인스턴스도 함수와 변수를 가지고 있지만,

인스턴스마다 다른 변수를 가짐

 

 

- class 안에 있는 함수를 method(메소드)라고 한다.

Python의 메소드는 첫번째 매개변수를 반드시 정의해야 하는데, 이 첫번째 매개변수는 인스턴스 자기 자신이다.

def __init__(self, first, second):

위의 코드처럼 첫번째 매개변수에 자기 자신(self)을 설정한다.

self 대신 다른 이름을 써도 되지만, 관례적으로 'self'를 사용한다.

 

이 덕분에 Python에서는 첫번째 매개변수(self)를 이용해서 *인스턴스 변수를 지정할 수 있다.

 

 

- 인스턴스 변수란?

변수(Value)는 전역 변수, 지역 변수, 인스턴스 변수로 나누어 볼 수 있다.

1) 전역 변수: 코드 안에서 쓸 수 있는 변수

2) 지역 변수: 함수 안에서만 쓸 수 있는 변수

3) 인스턴스 변수: 클래스의 인스턴스 안에서만 쓸 수 있는 변수

 

Python에서는 인스턴스의 외부에서 인스턴스 변수에 접근이 가능하다(인스턴스 변수의 입출력, 수정 등이 가능함).

외부에서 인스턴스 변수에 접근하지 못하게 하는 방법

  : 변수 이름 앞에 '__'(언더바 2개)를 붙인다.

self.__value = value

 

댓글