Pythonisinstance
函数在内部是如何工作的?我可以做些什么来改变它的结果,比如在一个类中定义一个特殊的函数之类的吗?这是我的用例:
class Decorator:
def __init__(self, decorated):
self._decorated = decorated
def __call__(self):
return self._decorated()
@Decorator
class Foo:
pass
f = Foo()
# How can I make this be true?
isinstance(f, Foo)
Decorator
行为几乎就像一个混合,除了混合在这里不合适。有什么办法可以使上面的代码工作吗?我还应该注意,该isinstance
行还给出了以下错误:
isinstance(f, Foo)
TypeError: isinstance() arg 2 must be a type or tuple of types