Ответ 1
issubclass работает только для экземпляров, а не для объектов класса.
Это отлично работает для меня:
>>> class test(object):pass
...
>>> issubclass(test,object)
True
У меня есть функция, которая принимает класс (а не экземпляр) и, в зависимости от того, является ли он конкретным классом или подклассом этого, мне нужно передать его одному из двух других (сторонних) w770 > .
(Чтобы предотвратить любые возражения, я знаю, что это не очень Pythonic, но я зависим от того, что принимает сторонняя библиотека.)
issubclass
работает только для экземпляров, а не для объектов класса. Я предполагаю, что могу создать экземпляр класса, сделать issubclass
и выбросить экземпляр, но это кажется немного расточительным.
Вот что я делаю в данный момент, полагаясь на встроенный атрибут mro, чтобы узнать, находится ли определенный класс в списке предков моего класса. Это безопасно, и есть ли лучший способ сделать это?
if GenericClass in myclass.__mro__:
result = generic_factory(myclass)
else:
result = other_factory(myclass)
issubclass работает только для экземпляров, а не для объектов класса.
Это отлично работает для меня:
>>> class test(object):pass
...
>>> issubclass(test,object)
True