Programming

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

procodes 2020. 8. 17. 10:49
반응형

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


이 질문에 이미 답변이 있습니다.

많은 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

반응형