如何检查类的给定实例是不是属于python中的主类? [复制]

Posted

技术标签:

【中文标题】如何检查类的给定实例是不是属于python中的主类? [复制]【英文标题】:how can I check if a given instance of a class belongs to a main class in python? [duplicate]如何检查类的给定实例是否属于python中的主类? [复制] 【发布时间】:2016-07-02 18:20:21 【问题描述】:

假设你有:

class F:
    pass

然后你创建一个实例:

g=F()

如何检查实例 g 是否派生自主类 F?

【问题讨论】:

“主班”F?相对于什么?你在某个地方有另一个F班吗?您是否试图排除子类的实例?您提出问题的方式听起来像是您已经知道您的对象是哪个类的实例。您的问题令人困惑。 请注意,虽然您当然可以检查对象的类型(或实例的类),但除非出于调试目的,否则这通常不是一个好主意,因为它非常不面向对象并且会使当您将来更改或尝试增强代码时,您的代码会更加“脆弱”(容易损坏)。 感谢大家的帮助 【参考方案1】:

你可以这样做:

if isinstance(obj, MyClass):
     print "obj is my object"

所以对于你的例子:

if isinstance(g, F):
    print "obj is my object"

使用此功能后果自负,有时是Easier to Ask Forgiveness than Permission。

【讨论】:

以上是关于如何检查类的给定实例是不是属于python中的主类? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python 检查类的实例

如何检查给定坐标是不是属于多边形? (离线地理围栏)

Python——检查对象是不是是某个模块中任何类的实例

Python检查类的实例

Android 中的 OAuth 实例状态

JPS工具如何获取正在执行的主类或jar的名称