Я использую сторонний модуль Python, который делает что-то ужасное, например:
def foo(x):
if type(x) is str:
do_useful_thing()
У меня есть класс, который подклассов str
:
class mystr(str):
....
Я хотел бы вызвать foo()
на mystr
экземпляре, но это не удалось, потому что type(mystr) != type(str)
.Можно ли как-нибудь сделать мой класс таким, чтобы type(mystr) == type(str)
и, следовательно, получить foo
, чтобы принять его?
Я знаю, что решение right предназначено для использования сторонним модулемisinstance
, но, к сожалению, я не могу это изменить.