我们在获取某个对象的时候,如果不知道这个是什么类型的对象,一般我们用 type 来查询是什么类型:
data = "Hello"
print(type(data))#type():获取对象是什么类型
而一般type返回的基本类型包括:
数值型 int
布尔类型 bool
序列类型(list、tuple)
集合类型(set)
字典类型(dict)
None值
字符串类型(str)
二进制序列类型(bytes)等
如果是要写判断是否是这种类型的时候,可以用isinstance来判断【是】或者【否】,这个时候我们就得知道,常用的数据类型有哪些?
以下是一些常用的数据类型及其判断方法:
-
整数 (
int): 表示整数值。a = 10 if isinstance(a, int):print("a 是整数型") -
浮点数 (
float): 表示带有小数点的数值。b = 10.1 if isinstance(b, float):print("b 是浮点数") -
字符串 (
str): 表示文本数据。c = "Hello, World!" if isinstance(c, str):print("c 是字符串") -
布尔值 (
bool): 表示判断是和否的逻辑值True或False。d = True if isinstance(d, bool):print("d 是布尔值") -
列表 (
list): 有序的集合,可以包含不同类型的元素,可变序列。e = [1, 2, 3] if isinstance(e, list):print("e 是列表") -
元组 (
tuple): 有序的,不可变的数据集合。f = (1, 2, 3) if isinstance(f, tuple):print("f 是元组") -
字典 (
dict): 字典,键值对的集合,可变。常用于点对点修改。g = {'key': 'value'} if isinstance(g, dict):print("g 是字典") -
集合 (
set): 无序的、唯一元素集。h = {1, 2, 3} if isinstance(h, set):print("h 是集合") -
NoneType: 表示无值的特殊类型,其值是
None。
注意:空值的判断不能用isinstance来判断,否则会有下面的问题:
TypeError: isinstance() arg 2 must be a type or tuple of types
所以要用下面的判断方式:
i = None
if i is None:print("i 为空")
- 字节序列:
bytes和bytearray
bytes和bytearray也可以用isinstance()来做判断
data = b"Hello, World!"
if isinstance(data, bytes):print("data is a bytes")
bytearray:
ba = bytearray([71, 101, 108, 108, 111])
if isinstance(ba , bytearray):print("ba 是字节序列")
具体关于bytes和bytearray的详细说明,可以参考:
【Python】bytes 和 bytearray 到底是什么类型呢?
- 自定义类类型: 可以通过自己定义类,来创建新的数据类型。
我们也可以用isinstance()函数,去判断某个对象是不是属于自己写的类里面,如果属于则可以进入下一步,这样方便做类的管理。class MyClass:passobj = MyClass() if isinstance(obj, MyClass):print("obj is an instance of MyClass")
通常,isinstance() 函数是进行类型判断的首选方法,因为它支持继承,可以检查一个对象是否是某个类的实例或其子类的实例。而 type() 函数则用于获取对象的确切类型,不考虑继承关系。

