클래스 이름을 얻기 위해 어떤 방법을 호출합니까?
In [1]: class test(object):
...: pass
...:
In [2]: test.__name__
Out[2]: 'test'
방법이 아니라 필드입니다. 이 필드는 __name__
. class.__name__
는 클래스 이름을 문자열로 제공합니다. object.__class__.__name__
는 객체의 클래스 이름을 제공합니다.
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>
Python 3.3 이후부터 __qualname__
field 클래스와 함수 모두에 해당합니다.
__name__
field 다른 클래스에 정의 된 클래스와 같은 중첩 된 개체의 경우
>>> class A:
class B:
pass
>>> A.B.__name__
'B'
>>> A.B.__qualname__
'A.B'
꽤 유용 할 수 있습니다.