Python中文网

python isinstance()

cnpython566

isinstance() 是 Python 内置函数之一,用于判断一个对象是否属于指定的类型,返回布尔值 TrueFalse。它的语法如下:

 pythonCopy code
 isinstance(object, classinfo)

其中,object 表示要判断的对象,classinfo 表示类型。如果 objectclassinfo 的实例,或者是 classinfo 的子类的实例,则返回 True;否则返回 False

在 Python 中,一切皆对象。除了基本数据类型如整数、浮点数、字符串等,其他所有的东西都是对象。比如一个函数、一个模块、一个列表、一个元组、一个字典,甚至是一个类,都是对象。因此 isinstance() 可以用来判断一个对象是否是某种类型,例如:

 pythonCopy code
 a = 5
 b = "hello"
 c = [1, 2, 3]
 d = (4, 5, 6)
 e = {"name": "Tom", "age": 18}
 ​
 print(isinstance(a, int))  # True
 print(isinstance(b, str))  # True
 print(isinstance(c, list))  # True
 print(isinstance(d, tuple))  # True
 print(isinstance(e, dict))  # True

可以看到,我们分别定义了一个整数 a,一个字符串 b,一个列表 c,一个元组 d 和一个字典 e,然后使用 isinstance() 函数判断它们的类型。如果它们的类型和参数中指定的类型匹配,那么函数返回 True,否则返回 False

除了基本数据类型和内置类型,Python 还支持自定义类型。例如,我们可以定义一个类 Person,用于表示一个人的信息:

 pythonCopy code
 class Person:
     def __init__(self, name, age):
         self.name = name
         self.age = age
 ​
 p = Person("Tom", 18)
 print(isinstance(p, Person))  # True

这里我们定义了一个类 Person,它有两个属性 nameage。然后我们创建了一个 Person 对象 p,并使用 isinstance() 函数判断它是否是 Person 类型的对象。由于 pPerson 类的实例,所以函数返回 True

isinstance() 函数常常用于类型判断和类型转换。比如,我们可以使用 isinstance() 函数判断一个对象是否是可迭代对象(即是否可以使用 for 循环遍历),如果是,则可以将它转换成列表或者其他序列类型。

上一篇:没有了

下一篇:python items()