Как подделать ответ type () на класс Python - PullRequest
0 голосов
/ 08 февраля 2020

Несмотря на то, что ранее было дано ответ, как подделать isinstance, в этом случае я пытаюсь подделать ответ, заданный type () при просмотре класса TypeChanger. Для контекста я просто пытаюсь понять, выполнимо или нет и почему для Python 3.X

Это моя текущая настройка теста:

def test():
    class TypeChanger():
        @classmethod
        def __instancecheck__(cls, instance):
            if instance is list:
                return True
            else:
                return False
        @property
        def __class__(self):
            return list
        def extra_functionality(self):
            return "Extra functionality"
    a = TypeChanger()
    return a

Тест:

trial = test()
assert isinstance(trial, list) # TRUE
assert isinstance(list, trial) # TRUE
assert type(trial)==type(list) # Assert error

Для дополнительного контекста моя цель - сохранить функциональность класса TypeChanger при фальсификации ответа type ()

...