Python中的isinstance()函数
Python 中的 isinstance()
函数详解
1. 函数简介
isinstance()
是 Python 内置函数,用于判断一个对象是否是指定类型或指定类型元组中的某个类型的实例。
2. 函数定义
isinstance(object, classinfo)
- object:要检查的对象。
- classinfo:类型或类型元组,用来判断对象是否是这些类型中的一个。
3. 返回值
- 返回
True
:如果object
是classinfo
指定类型或其子类的实例。 - 返回
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()
用于判断对象是否是某个类型或类型元组中的类型的实例。- 支持继承关系判断。
- 常用于类型检查和多态编程。
如果你需要更多示例或用法,欢迎留言交流!