Я хочу получить ссылку на класс из объекта класса в Python. Обычно я использую имя класса в качестве допустимой ссылки, но это не всегда работает.
Рассмотрим этот код:
import inspect
import unittest
import pywin32_testutil
mro=inspect.getmro(pywin32_testutil.TestProgram)
mro[0]
> <class 'pywin32_testutil.TestProgram'>
mro[0].__module__ + '.' + mro[0].__name__
>'pywin32_testutil.TestProgram'
pywin32_testutil.TestProgram
> <class 'pywin32_testutil.TestProgram'>
Из объекта я могу определить имя класса, и используя имя класса, я могу получить объект класса. Однако это не всегда работает. Продолжая пример:
mro[1]
> <class 'unittest.main.TestProgram'>
mro[1].__module__ + '.' + mro[1].__name__
> 'unittest.main.TestProgram'
пока все хорошо, однако unittest.main.TestProgram
ссылка недействительна:
unittest.main.TestProgram
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'TestProgram' has no attribute 'TestProgram'
Как я могу обойти это?