Python中的isinstance()函数

Python 中的 isinstance() 函数详解


1. 函数简介

isinstance() 是 Python 内置函数,用于判断一个对象是否是指定类型或指定类型元组中的某个类型的实例。


2. 函数定义

isinstance(object, classinfo)
  • object:要检查的对象。
  • classinfo:类型或类型元组,用来判断对象是否是这些类型中的一个。

3. 返回值

  • 返回 True:如果 objectclassinfo 指定类型或其子类的实例。
  • 返回 False:否则。

4. 详细说明

4.1 判断单个类型

isinstance(5, int)          # True,因为5是int类型
isinstance("hello", str)    # True,因为"hello"是str类型
isinstance(3.14, int)       # False,3.14是float,不是int

4.2 判断多个类型(类型元组)

classinfo 可以是一个类型元组,判断对象是否是元组中任意一个类型的实例:

isinstance(5, (int, float))       # True,因为5是int
isinstance(3.14, (int, float))    # True,因为3.14是float
isinstance("hello", (int, float)) # False,str不在元组中

4.3 支持继承关系

如果对象是某个类的子类实例,isinstance() 也会返回 True

class Animal:
    pass

class Dog(Animal):
    pass

dog = Dog()
isinstance(dog, Dog)     # True
isinstance(dog, Animal)  # True,因为Dog继承自Animal

4.4 常见用法

  • 类型检查,确保函数参数类型正确。
  • 在多态编程中判断对象类型。
  • 处理不同类型的输入。

5. 与 type() 的区别

  • type(obj) == SomeType 只在类型完全相同时返回 True,不考虑继承关系。
  • isinstance(obj, SomeType) 会考虑继承关系,子类实例也返回 True

示例:

isinstance(dog, Animal)  # True
type(dog) == Animal      # False,因为dog的类型是Dog,不是Animal

6. 总结

  • isinstance() 用于判断对象是否是某个类型或类型元组中的类型的实例。
  • 支持继承关系判断。
  • 常用于类型检查和多态编程。

如果你需要更多示例或用法,欢迎留言交流!

posted @ 2025-06-19 11:25  爆爆啥龙马  阅读(190)  评论(0)    收藏  举报