[python]객체지향 프로그래밍 및 데이터타입
파이썬은 많은 프로그래밍 언어 중 하나로, 객체 지향형적인 특징은 가지고 있는 언어입니다. 객체 지향 프로그래밍은 코드를 물건(객체)을 만들어 사용하는 방식으로 구조화하는 프로그래밍 패러다임입니다. 그럼 먼저 물건(객체)이란 무엇일까요?
물건(객체)이란?
물건 또는 객체(Object)은 사용 목적을 가지고 만들어진 것입니다. 이는 일상 생활에서 사용하는 물건과 유사한 개념입니다. 예를 들어, 펜은 글을 쓰는 목적을 가지고 만들어진 물건입니다. 펜은 잉크와 플라스틱으로 만들어져 있으며, 글을 쓸 때 잉크를 사용하여 글을 쓸 수 있도록 하는 스위치를 가지고 있습니다.
이 물건(객체)은 한 번 만들어지면 계속해서 사용할 수 있으며, 계속해서 사용하기 위해서는 새로 만들 필요가 없습니다. 파이썬은 이러한 물건(객체)들로 만들어진 프로그래밍 언어이며, 모든 것이 객체로 이루어져 있기 때문에 파이썬은 객체 지향 프로그래밍 언어라고 부릅니다.
핵심 객체: 데이터 타입
파이썬에서는 다양한 종류의 객체를 사용하여 정보를 다룹니다. 이러한 객체를 사용하는 목적은 정보를 생성, 삭제, 읽기, 수정하는 작업을 수행하는 것입니다. 파이썬의 핵심 데이터 타입(Data Types)으로는 다음과 같은 것들이 있습니다:
- int(정수)
- float(부동 소수점)
- bool(불리언)
- str(문자열)
- list(리스트)
- tuple(튜플)
- set(집합)
- dict(사전)
- none(아무 값도 없음)
파이썬에서 어떤 객체의 타입을 확인하려면 .__class__를 사용할 수 있습니다. 예를 들어, 정수를 변수 x에 할당하고 그 타입을 확인해보면 다음과 같습니다:
x = 100
print(x.__class__) # <class 'int'>
클래스와 모듈
파이썬에서는 직접 객체 타입을 만들 수 있는데, 이를 클래스(Class)라고 합니다. 또한, 이미 만들어진 객체들을 가져와 사용할 수 있는데, 이를 모듈(Module)이라고 합니다. 예를 들어, math, os, random 등이 모듈의 예시입니다.
라이브러리
여러 모듈을 하나로 묶어 패키지 형태로 제공하는 것을 라이브러리(Library)라고 합니다. 라이브러리는 파이썬의 강력한 기능 중 하나로, 다양한 모듈과 클래스를 포함하여 다양한 작업을 수행하는 데 도움을 줍니다.
파이썬은 객체 지향 프로그래밍을 지원하며, 다양한 객체와 데이터 타입을 사용하여 코드를 작성할 수 있도록 도와줍니다. 이러한 객체 지향적 접근 방식은 코드를 구조화하고 관리하기 쉽게 만들어줍니다. 파이썬을 사용하면 물건을 만들고 사용하는 것처럼 코드를 작성할 수 있습니다.
파이썬의 주요 데이터 타입
Numbers(숫자형)
파이썬의 숫자형 데이터 타입은 정수(Integer), 소수(Float), 그리고 불리언(Boolean)으로 나눌 수 있습니다. 정수는 정수 값을 나타내며, 소수는 소수점을 가지는 숫자를 나타냅니다. 불리언은 True 또는 False 값 중 하나를 나타냅니다.
X = 400
print(isinstance(X, int)) # True
Y = 400.1
print(isinstance(Y, int)) # False
print(isinstance(Y, float)) # True
Z = True
print(isinstance(Z, int)) # True
print(isinstance(Z, bool)) # True
위의 예시 코드에서 isinstance() 함수를 사용하여 인스턴스 테스트를 할 수 있습니다. X 변수는 정수 값을 가지므로 int 클래스의 인스턴스입니다. 마찬가지로 Y 변수는 실수 값을 가지므로 float 클래스의 인스턴스입니다. Z 변수는 불리언 값을 가지므로 bool 클래스의 인스턴스입니다.
또한 type() 함수를 사용하면 인스턴스가 어떤 클래스로부터 생성되었는지 확인할 수 있습니다.
X = 400
print(X.__class__) # <class 'int'>
Y = 400.1
print(Y.__class__) # <class 'float'>
Z = True
print(Z.__class__) # <class 'bool'>
위의 예시 코드에서는 변수들의 클래스를 확인하는 방법을 보여줍니다.
Strings(문자열)
문자열은 문자를 담고 있는 데이터 타입으로, 문자열 데이터는 작은따옴표(') 또는 큰따옴표(")로 둘러싸여 있습니다. 문자열은 문자 하나하나를 인덱스를 통해 접근할 수 있으며, 문자열의 길이는 len() 함수로 확인할 수 있습니다.
X = 'Hello'
print(isinstance(X, str)) # True
print(X.__class__) # <class 'str'>
List (리스트)
리스트는 대괄호 안에 객체들을 순서대로 모아 놓은 데이터 타입입니다. 파이썬의 리스트는 다양한 데이터 타입의 객체를 저장할 수 있으며, 객체의 메모리 주소를 저장하는 방식으로 작동합니다. 이는 리스트가 서로 다른 데이터 타입을 가진 객체들을 함께 저장할 수 있도록 해주는 중요한 특징입니다.
my_list = [0, 1, 2, 3]
my_list2 = [123, 'hello', 156.9]
# 리스트 안에 리스트도 가능
my_nested_list = [0, [1, 2], 'Hello']
Dictionaries(사전)
사전은 중괄호 {} 안에 객체들을 랜덤 순서로 모아놓은 데이터 타입입니다. 사전은 key와 value의 쌍으로 데이터를 저장하며, key는 중복되어선 안되고 순서가 없습니다. Key는 문자열, 숫자, 튜플과 같은 불변한 데이터 타입만 사용 가능하며, Value에는 다양한 데이터를 저장할 수 있습니다.
my_dict = {
'age': 30,
'name': 'Mojh',
0: '0'
}
Tuples(튜플)
튜플은 괄호 () 안에 객체들을 왼쪽에서 오른쪽으로 순서대로 모아놓은 데이터 타입입니다. 튜플은 리스트와 비슷하지만 한 번 생성되면 수정할 수 없는 특징을 가지고 있습니다.
my_tuple = (1, 2, 3, 4, 5)
Set
세트는 중괄호 {} 안에 객체들을 랜덤 순서로 모아놓은 데이터 타입입니다. 세트는 중복된 값을 허용하지 않으며, 수정이 불가능한 데이터만 저장 가능합니다. 세트는 딕셔너리의 키(key)만을 모아놓은 것으로 생각할 수 있습니다.
my_set = {1, 2, 3, 4, 5}
파이썬의 다양한 데이터 타입을 이용하여 다양한 작업을 수행할 수 있으며, 이러한 다양성은 파이썬을 매우 강력한 프로그래밍 언어로 만듭니다. 객체 지향 프로그래밍과 다양한 데이터 타입을 활용하여 코드를 작성하면 더 효율적으로 프로그래밍할 수 있습니다.