PAYATHON 2026

Python 中保存另一个变量类型信息的变量,其自身是什么类型?

数据小陈

结论

如果保存的是 int 这样的类型对象,它自身的类型是 type。例如,saved_type = int 保存的是 int 类对象,type(saved_type) 的结果是 type。

在 Python 中,类型也是对象,变量名引用对象。

如何获取并保存类型

用 type() 获取对象的类型,再将结果赋给另一个变量:

value = 42
saved_type = type(value)

print(saved_type)        # <class 'int'>
print(type(saved_type))  # <class 'type'>
print(saved_type is int) # True

这里有两层关系:

  • value 引用整数对象 42,这个对象的类型是 int。
  • saved_type 引用类对象 int,这个类对象的类型是 type。

Python 中的类也是对象。创建类的类称为元类,type 是通常使用的元类。int 这样的类对象也有自己的类型。

类型对象与类型名称字符串有什么区别?

int 和 'int' 是不同的对象:前者是类型对象,后者是字符串。

saved_type = int
saved_name = 'int'

print(type(saved_type))  # <class 'type'>
print(type(saved_name))  # <class 'str'>

如果只想获取类型名称,可以使用 type(value).__name__,得到的是字符串:

name = type(value).__name__
print(name)        # int
print(type(name))  # <class 'str'>

需要保留类型本身时,保存 type(value);只需要显示名称时,可以保存 type(value).__name__。

适用范围

上述结论适用于 int、str 等常见内置类型。对于使用自定义元类的类,类对象自身的类型可能是该自定义元类,可以通过 type(saved_type) 查看。

备注:内容仅供参考。