我想知道是否有一个与Ruby的“ is_a”等效的Python?方法?
> "".is_a? String
=> true
is_a?(class) → true or false
如果class是obj的类,或者class是obj的超类之一或obj中包含的模块,则返回true。
谢谢。
这取决于您想要的部分。
如果您想知道foo
是class的实例C
还是其祖先,请执行以下操作:
isinstance(foo, C)
如果你想知道是否foo
是一个实例C
,只有C
,则:
type(foo) == C
广义上讲,频繁使用诸如isinstance(...)
或type(...)
代码臭味之类的东西是因为它意味着鸭子类型被破坏了,而Python在很大程度上依赖于这种契约。参见,例如,被认为有害的实例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句