You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Python中自定义类的类型是<class 'type'>?

Python类的类型为<class 'type'>的问题说明

测试代码

class Hello:
    pass


c = Hello
print('type check one: ', type(c))
print('type check two: ', type(Hello))

运行输出

type check one:  <class 'type'>
type check two:  <class 'type'>
原因解释
  • Python 中所有元素都是对象,你自定义的类本身也属于对象的一种,这类用来生成实例的类对象,由元类负责创建,Python 默认使用的元类就是type,因此所有类本身的类型查询结果都是<class 'type'>。
  • 代码中c = Hello只是给Hello对应的类对象新增了一个变量引用,二者指向同一个内存地址的类对象,所以两次type查询结果完全一致。
  • 你平时使用class关键字定义类的写法,本质是type创建类对象的语法糖,和直接执行Hello = type('Hello', (), {})效果完全相同,type的三个入参分别对应类名、继承的父类元组、类的属性字典。

补充验证

如果你实例化Hello类得到实例对象,再查询实例的类型,就会得到类名返回:

obj = Hello()
print(type(obj))
# 输出:<class '__main__.Hello'>

内容的提问来源于stack exchange,提问作者Rasheed kotoor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 11:18:00