programing

구체적인 클래스 이름을 문자열로 얻는 방법은 무엇입니까?

linuxpc 2023. 7. 5. 20:30
반응형

구체적인 클래스 이름을 문자열로 얻는 방법은 무엇입니까?

저는 많은 전화를 피하고 싶습니다.isinstance()함수, 그래서 인스턴스 변수에 대한 구체적인 클래스 이름을 문자열로 얻을 수 있는 방법을 찾고 있습니다.

아이디어 있어요?

 instance.__class__.__name__

예:

>>> class A():
    pass
>>> a = A()
>>> a.__class__.__name__
'A'
<object>.__class__.__name__

또한 클래스 이름이 아닌 클래스 자체를 키로 사용하여 딕트를 만들 수 있습니다.

typefunc={
    int:lambda x: x*2,
    str:lambda s:'(*(%s)*)'%s
}

def transform (param):
    print typefunc[type(param)](param)

transform (1)
>>> 2
transform ("hi")
>>> (*(hi)*)

여기서typefunc각 유형의 함수를 매핑하는 딕트입니다. transform이 함수를 가져와 매개 변수에 적용합니다.

물론, '진짜' OOP를 사용하는 것이 훨씬 나을 것입니다.

언급URL : https://stackoverflow.com/questions/521502/how-to-get-the-concrete-class-name-as-a-string

반응형