프로그래밍/Python
[Python] 객체지향프로그래밍(OOP, Object Oriented Programming)_class, instance, method
소꿍
2020. 4. 24. 00:35
객체지향 프로그래밍(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