我想知道是否有一个Python相当于Ruby的'is_a?' 方法?
> "".is_a? String => true
信息:
is_a?(class) ? true or false
如果class是obj的类,或者如果class是obj中包含的obj或模块的超类之一,则返回true.
谢谢.
这取决于你想要的确切部分.
如果您想知道foo
是类的实例C
还是其任何祖先,那么:
isinstance(foo, C)
如果你想知道是否foo
是一个实例C
,只有C
,则:
type(foo) == C
从广义上讲,经常使用类似的东西isinstance(...)
或者type(...)
是代码味道,因为这意味着鸭子打字被破坏了,而且Python在很大程度上依赖于那种合同.例如,见例如有害的.