it-swarm-ko.tech

클래스 이름의 문자열을 어떻게 얻습니까?

클래스 이름을 얻기 위해 어떤 방법을 호출합니까?

44
clahey
In [1]: class test(object):
   ...:     pass
   ...: 

In [2]: test.__name__
Out[2]: 'test'
56
Mr Shark

방법이 아니라 필드입니다. 이 필드는 __name__. class.__name__는 클래스 이름을 문자열로 제공합니다. object.__class__.__name__는 객체의 클래스 이름을 제공합니다.

37
clahey

Mr.Shark에 동의하지만 클래스 인스턴스가 있으면 __class__ 회원 :

>>> class test():
...     pass
...
>>> a_test = test()
>>>
>>> a_test.__name__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: test instance has no attribute '__name__'
>>>
>>> a_test.__class__
<class __main__.test at 0x009EEDE0>
10
Jon Cage

Python 3.3 이후부터 __qualname__ field 클래스와 함수 모두에 해당합니다.

__name__ field 다른 클래스에 정의 된 클래스와 같은 중첩 된 개체의 경우

>>> class A:
        class B:
            pass
>>> A.B.__name__
'B'
>>> A.B.__qualname__
'A.B'

꽤 유용 할 수 있습니다.

추가 자료

0
Azat Ibrakov