우리는 파이썬(python)으로 코딩을 하다가 보면 자료형을 확인해야하는 경우가 종종생깁니다. 자료형을 어떻게 확인하는지 빠르게 알아보도록 하겠습니다.
1. type() 함수 사용
파이썬(python)에서 가장기본적인 자료형입니다. 이 함수를 이용해서 type() 함수를 사용하는 방법을 알아보겠습니다. 이함수는 변수의 자료형을 반환합니다.
x = 10
print(type(x)) # <class 'int'>
y = "Hello"
print(type(y)) # <class 'str'>
type() 함수는 해당 변수의 자료형을 명확히 알려주어서 코드 작성중 자료형을 쉽게 확인할 수 있습니다.
2. isinstance() 함수 사용
isinstance() 함수는 특정 객체가 특정 자료형인지 여부를 확인할 때 사용됩니다. 첫 번째 인자로 객체를 두 번째 인자로 자료형을 받습니다. 아래의 코드를 확인해보세요!
x = 10
print(isinstance(x, int)) # True
y = "Hello"
print(isinstance(y, str)) # True
z = [1, 2, 3]
print(isinstance(z, list)) # True
x 라는 변수에 10을 넣고 isinstance()함수를 이용해서 x가 int 자료형인지의 대한 여부를 확인합니다. 그리고 True(참)을 출력합니다.
그리고 이 함수는 객체가 특정 자료형인지 확인할 때 유용한데요. 아래와 같이 다중 자료형을 검사하는데도 가능합니다.
x = 10
print(isinstance(x, (int, float))) # True
위 예제 처럼 x가 int인지 float 자료형인지를 확인합니다.
3. collections.abc 모듈 사용
python에서 collections.abc 모듈은 다양한 컨테이너 자료형에 대해서 추상 베이스 클래스를 제공하는데요. 우리는 이 모듈사용해서 객체가 특정 컨테이너 자료형인지를 확인해보도록 하겠습니다.
from collections.abc import Iterable
x = [1, 2, 3]
print(isinstance(x, Iterable)) # True
y = 5
print(isinstance(y, Iterable)) # False
이 방법은 객체가 iterable인지 확인할 때 유용합니다. iterable은 member를 하나씩 차례로 반환가능한 object를 의미합니다.
4. __class__ 속성 사용
모든 python객체는 ‘__class__’속성을 가지고 있는데요. 이를 통해서 객체의 자료형을 확인할 수 있습니다. 아래를 확인하세요.
x = 10
print(x.__class__) # <class 'int'>
y = "Hello"
print(y.__class__) # <class 'str'>
__class__ 속성은 객체의 클래스 정보를 반환해서 자료형을 직접확인할 수 있습니다.
5. types 모듈 사용
파이썬(python)의 types모듈은 다양한 내장 자료형에 대한 이름을 제공합니다. 이를 통해서 특정 자료형과 객체를 비교할 수 있습니다.
import types
def func():
pass
print(isinstance(func, types.FunctionType)) # True
이 방법은 함수 메서드 등등 특정 자료형을 확인할 때 유용하게 사용됩니다.
6. 사용자 정의 자료형 확인
사용자 정의 클래스를 정의하고 그리고 해당의 클래스의 객체인지를 확인할때도 ‘type()’ 아니 ‘isinstance()’함수를 사용할 수 있습니다.
class MyClass:
pass
obj = MyClass()
print(type(obj)) # <class '__main__.MyClass'>
print(isinstance(obj, MyClass)) # True
이와 같이 사용자 정의 클래스의 객체인지도 쉽게 확인할 수 있습니다.
7. 데이터 프레임 자료형 확인
파이썬의 데이터 분석 라이브러리인 pandas를 사용할 때 데이터프레임의 각 열의 자료형을 확인하는 방법도 있습니다. 데이터쪽으로 공부하시고 싶으시다면 아주중요하고 기본적인 내용입니다.
import pandas as pd
data = {'name': ['Alice', 'Bob'], 'age': [25, 30]}
df = pd.DataFrame(data)
print(df.dtypes)
결론
파이썬에서는 다양하게 자료형을 확인할 수 있는데요. type(), isinstance(), collections.abs 모듈 등등 다양한게 우리는 자료형을 확인할 수 있습니다. 다양한 방법을 알아두어서 나중에 실전에서 활용될것이라 믿습니다. 이런 코드들이 사실 가독성도 높여주고 오류를 방지할 수 있어서 자료형을 확인하는 습관을 가지는것이 중요합니다.