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

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

你可能感兴趣的:(python)