Я хочу извлечь имя класса python при использовании абстрактных классов с библиотекой abc
.К сожалению, вместо этого я получаю имя класса ABCMeta
.
import abc
class A(abc.ABC)
pass
class B(A)
pass
print(A.__class__.__name__) # output: 'ABCMeta'
print(B.__class__.__name__) # output: 'ABCMeta'
print(str(A)) # output: "<class '__main__.A'>"
print(str(B)) # output: "<class '__main__.B'>"
Я ожидаю, что должен получить вывод, как показано ниже
print(A.__class__.__name__) # output: 'A'
print(B.__class__.__name__) # output: 'B'
Кажется, что str(A)
и str(B)
выводят на печатьимя класса, поэтому я предполагаю, что имя класса может быть извлечено откуда-то.Но, тем не менее, мне не интересно использовать str
для анализа и получения имени класса.