Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 인스턴스의 클래스 이름을 확인하는 방법

Python으로 개발하다 보면 특정 객체(인스턴스)가 어떤 클래스에 속해 있는지 확인해야 하는 경우가 자주 있습니다. 이럴 때 __class__ 속성과 __name__ 속성을 활용하면 간단하게 클래스 정보를 얻을 수 있습니다.

기본 원리

모든 Python 객체는 자신이 생성된 클래스를 가리키는 __class__ 속성을 내장하고 있습니다. 여기에 __name__ 속성을 추가로 사용하면 클래스 이름만 문자열 형태로 추출할 수 있습니다.

예제 코드

class Number:
    def __init__(self, number):
        self.number = number

n1 = Number(1)
print(n1.__class__)
print(n1.__class__.__name__)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

<class '__main__.Number'>
Number

결과 해석

n1.__class__는 인스턴스가 속한 클래스 객체 그 자체를 반환하기 때문에, 정의된 모듈 정보까지 포함된 형태로 출력됩니다. 반면 n1.__class__.__name__은 클래스의 이름만 담고 있는 문자열을 반환하므로 Number라는 깔끔한 결과를 얻을 수 있습니다.

이 방식은 로깅(logging) 작업 시 객체의 출처를 기록하거나, 조건문에서 객체의 타입에 따라 다르게 동작하도록 처리할 때 매우 유용하게 활용됩니다. 참고로 타입 비교가 목적이라면 isinstance() 함수를 사용하는 것이 더 안전하고 권장되는 방법입니다.