在 Python 中,类(Class) 和 类型(Type) 是两个非常核心但容易混淆的概念。简单来说:
- 类(Class):用来定义对象结构和行为的模板
- 类型(Type):表示对象的类别,本质上也是一种类
下面系统解释。
一、类(Class)
类是创建对象的模板。
通过类可以定义:
- 属性(变量)
- 方法(函数)
示例
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print("Woof!")
创建对象:
d = Dog("Buddy")
d.bark()
解释:
Dog是 类d是 实例对象(instance)
结构:
类(Dog)
↓
实例对象(d)
二、类型(Type)
类型是对象所属的类别。
在 Python 中,可以使用 type() 查看对象类型:
x = 10
print(type(x))
输出:
<class 'int'>
说明:
10的类型是int
三、类其实也是一种类型
Python 的一个重要特点:
类本身也是对象,而且是 type 类型。
示例:
class Dog:
pass
print(type(Dog))
输出:
<class 'type'>
解释:
Dog 是对象
Dog 的类型是 type
关系结构:
type
↑
Dog(类)
↑
d(实例)
换句话说:
type创建类- 类创建对象
四、type() 的两个作用
1 查看对象类型
type(10)
type("hello")
2 动态创建类
Dog = type("Dog", (), {})
d = Dog()
等价于:
class Dog:
pass
五、Python 的类型体系
Python 是 一切皆对象(Everything is object)。
例如:
type(10) # int
type("abc") # str
type([]) # list
type({}) # dict
这些类型:
intstrlistdict
本质上都是类。
六、类 vs 类型总结
| 概念 | 含义 |
|---|---|
| 类(class) | 创建对象的模板 |
| 类型(type) | 对象所属类别 |
type | Python 内置元类 |
关系:
对象 instance
↑
类 class
↑
type(元类)
七、最重要的一句话
在 Python 中:
类就是类型,类型就是类。
例如:
class Dog:
pass
d = Dog()
type(d) # Dog
type(Dog) # type
✅ 记忆模型
type → 创建 → class → 创建 → instance
如果你愿意,我可以继续讲 Python 最难但最核心的部分之一:
- 元类(metaclass)
type如何创建类- Python 对象模型(instance / class / metaclass)
这部分会让你彻底理解 Python 类型系统。