isinstance(1, type) 为什么会输出false呢

本文介绍了Python内置isinstance函数的工作原理,比较了它与type的关系,并通过实例演示其用法。
摘要由CSDN通过智能技术生成

isinstance的本质

isinstance() 函数是Python中用来检查一个对象是否是一个类的实例的内置函数。

它接受两个参数:第一个参数是要检查的对象,第二个参数是类(或类的一个元组,表示任意一个类)。

type的本质

在Python中,type 是一个内建的元类,用于创建类。

所有的Python类(包括用户定义的类和内建的类)都是 type 的实例,因为它们都是由 type 这个元类创建的。

isinstance(1, type) 的执行逻辑

当你执行 isinstance(1, type) 这行代码时,你正在检查整数 1 是否是 type 类的一个实例。
然而,具体的对象1不是由 type 创建的,而是由int类创建的,即1 是 int 类的实例,而不是 type的实例。所以输出False;

证明案例:

# 检查 int 类是否是由 type 创建的(即 int 类是否是 type 的实例)
print(isinstance(int, type))  # 输出:True

# 检查自定义的 MyClass 类是否是由 type 创建的
class MyClass:
    pass

print(isinstance(MyClass, type))  # 输出:True
print(isinstance(MyClass(), type))  # 输出:False
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值