IT

파이썬 클래스와 객체

astrocker 2021. 1. 10. 18:42
반응형

파이썬 프로그래밍 언어를 그나마 가장 깊이 공부하고 있다.

객체와 클래스 등 기본 개념인데 모호한 용어들을 한 번 정리해 본다.


Data : Value(값), Type(유형) 으로 구성 
Data Type : Data가 속하는 범주를 나타냄
Class : Data Type을 나타내는 Data. (int, float, str 등) 

※ 정확하지 않지만, 아래처럼 집합 관계로 볼 수 있겠다.
Class > Data Type > Data

# Data Type 확인하기
>>> type(0)    # 숫자 0의 type은 int(정수)
<class 'int'>

>>> type('0')  # '0'의 type은 str(문자열)
<class 'str'>

>>> type(type(0))        # 숫자 0의 type의 type은 type
<class 'type'>

>>> type(type(type(0)))  # 숫자 0의 type의 type의 type도 type
<class 'type'>

 


Object(객체) : 메모리 상의 개별 Data를 가리킴.
 - Value : 객체의 정보 그 자체. 가변 객체, 불변 객체.
 - Type : 객체의 범주. 클래스로 나타내며, type() 함수로 확인.
 - Identity(정체성) : 다른 객체와 구별하기 위한 고유번호.
                          메모리 상의 위치. id() 함수로 확인.

# 객체의 Vaue, Type, Identity 확인하기

>>> year = 1978  # 객체를 만들어 변수에 대입

>>> year         # 객체의 value(객체 자신) 확인
1978

>>> type(year)   # 객체의 type(클래스) 확인
<class 'int'>

>>> id(year)     # 객체의 identity(고유번호) 확인
140147693424912


#두 객체의 값, 유형, 정체성 비교

>>> new_year = 1978               # 다른 객체

>>> year == new_year              # 두 객체의 값 비교
True

>>> type(year) == type(new_year)  # 두 객체의 유형 비교
True

>>> id(year) == id(new_year)      # 두 객체의 정체성 비교
False

>>> same_year = year              # 동일한 객체를 다른 변수에 대입하면,
>>> id(year) == id(same_year)     # 두 변수가 같은 객체를 가리킨다.
True

Variable(변수) : 객체에 붙인 이름. 한 객체에 여러 개의 이름을 붙일 수 있다. 
Instance : 어떤 클래스에 속하는 객체를 지칭.  
             예를 들어, {1,2,3,4}는 모두 int 클래스의 인스턴스이다.

# isinstance() 함수를 이용해 객체가 유형에 속하는지 확인하기

>>> isinstance(1978, int)  # 1978은 int의 인스턴스인가?
True

>>> isinstance(3.14, int)  # 3.14는 int의 인스턴스인가?
False

 

※ 파이썬의 모든 데이터(함수, 클래스, 예외(Exception), 모듈(Module) 등) 는 객체이다.

참고 : python.bakyeono.net/chapter-8-2.html

 

8.2 클래스와 객체 | 연오의 파이썬

파이썬으로 프로그래밍에 처음 입문하시는 분을 위한 책입니다. 프로그래밍 지식을 갖고 계시지 않더라도 누구나 학습하실 수 있습니다.

python.bakyeono.net

 

 

728x90
반응형