Python如何编写判断对象是否为指定类精确实例的函数
解决方法
isinstance()的判断逻辑会包含继承关系,只要对象是目标类或其子类的实例都会返回True,不符合你需要的仅匹配直属类的要求。直接对比对象的直属类型即可实现需求:
代码实现
def is_same_class(obj, a_class): return type(obj) is a_class
逻辑说明
type(obj)会返回创建该对象时对应的直属类,不会遍历继承链匹配父类- 使用
is运算符判断比==更严谨,因为Python中的类对象本身是全局唯一的单例
验证效果
运行你提供的测试用例后,仅会输出预期的1 is an instance of the class int,不会匹配float和object类。
内容的提问来源于stack exchange,提问作者seahorse-code
相关产品推荐
相关产品推荐

