Детали issubclass
У меня есть любой класс:
class SomeClass:
...
Мне нужно, чтобы при вызове issubclass(SomeClass, dict) возвращалось значение True.
При этом я не хочу использовать наследование.
То есть, мне не нужны решения такого типа:
class SomeClass(dict):
...
UPD: Решение через наследование будет считаться правильным, если подкласс не будет наследовать методы родительского класса.
Ответы (1 шт):
Автор решения: Bol4onok
→ Ссылка
Задачу можно решить незамысловатым метаклассом, как отмечалось в комментариях, наследования в таком случае производится не будет. В момент создания класса в его bases-tuple будет подмешиваться dict. Пример работы кода:
class Meta(type):
def __new__(cls, clsname, clsbases, clsmethods):
clsbases = (dict, *clsbases)
return type.__new__(cls, clsname, clsbases, clsmethods)
class A(metaclass=Meta):
pass
print(issubclass(A, dict))
Вывод
True