有没有办法检查param是否包含类或类实例?

nab*_*und 0 python typechecking

我希望包装器my_function能够接收类或类实例,而不是编写两个不同的函数:

>>> from module import MyClass

>>> my_function(MyClass)

True

>>> cls_inst = MyClass()

>>> my_function(cls_inst)

True
Run Code Online (Sandbox Code Playgroud)

问题是我事先不知道我将接收哪种类或类实例.所以我不能,例如,使用像isinstance这样的函数...

如何以通用方式键入检查param是否包含类或类实例?

任何的想法?

Sil*_*ost 7

>>> class A: pass

>>> isinstance(A, type)
True
>>> isinstance(A(), type)
False
Run Code Online (Sandbox Code Playgroud)