Python

[Python] 클래스의 이름 출력하기

비번변경 2024. 7. 25. 00:06

개요

Python에서 로그를 출력할 때, 어떤 클래스에서 동작하는 함수인지를 확인하려고 한다. 그래서 클래스의 이름을 출력하고 싶다.

방법을 적어둔다.

 

 

__class__.__name__

Python의 모든 객체는 __class__라는 속성을 가지는데, __class__ 속성에는 객체의 데이터 타입, 즉 클래스에 대한 정보가 저장되어 있다. 그 중 클래스의 이름은 __class__.__name__ 속성에 접근하여 사용할 수 있다.

class Character():
    def __init__(self):
        self.life = 1000

    def print(self):
        print(self.__class__.__name__)

lisa = Character()
lisa.print()

__class__는 일반적으로 터미널이나 콘솔에서 일회성으로 빠르게 확인하는 용도로 사용한다.

 

 

type().__name__

type()은 Python의 내장 함수로 객체를 인자로 받아 객체의 데이터 타입을 반환한다. __class__ 속성과 마찬가지로, 클래스의 이름에 접근할 떄는 __name__ 속성을 사용한다.

 

아래 코드는 Character의 하위 클래스인 Warrior로 생성한 객체의 클래스 이름을 확인해보는 예시이다.

class Character():
    def __init__(self):
        self.life = 1000

    def print(self):
        print(type(self).__name__)

class Warrior(Character):
    pass

james = Warrior()
james.print()

하위 클래스의 객체를 생성하면 부모 클래스에서 클래스 이름을 접근해도 자식 클래스의 이름으로 반환되는 것을 알 수 있다.

 

 

참고 문서

https://www.daleseo.com/python-class-type-isinstance/