当前位置: 首页 > news >正文

Python 内置函数 isinstance

isinstance() 是 Python 内置函数,用于检查一个对象是否是指定类或类型的实例。它还可以用于检查对象是否属于某个类或其子类,或者是否在某个元组中的类型之一。

语法

isinstance(object, classinfo)
  • object: 要检查的对象。
  • classinfo: 可以是一个类、类型,或者由类/类型组成的元组。

返回值

  • 如果 objectclassinfo 的实例或其子类的实例,返回 True
  • 否则返回 False

示例

1. 检查对象是否是某个类的实例
class MyClass:
    pass

obj = MyClass()

print(isinstance(obj, MyClass))  # 输出: True
print(isinstance(obj, str))       # 输出: False
2. 检查对象是否是多个类型之一
value = 42

print(isinstance(value, (int, float)))  # 输出: True
print(isinstance(value, (str, list)))   # 输出: False
3. 检查对象是否是内置类型的实例
num = 3.14
text = "Hello"

print(isinstance(num, float))  # 输出: True
print(isinstance(text, str))   # 输出: True
4. 检查对象是否是子类的实例
class Parent:
    pass

class Child(Parent):
    pass

obj = Child()

print(isinstance(obj, Parent))  # 输出: True
print(isinstance(obj, Child))   # 输出: True

注意事项

  • isinstance() 会考虑继承关系。如果对象是子类的实例,检查父类也会返回 True
  • type() 不同,isinstance() 更灵活,因为它支持继承和元组类型检查。
isinstance()type() 的区别
class Parent:
    pass

class Child(Parent):
    pass

obj = Child()

print(isinstance(obj, Parent))  # 输出: True
print(type(obj) == Parent)      # 输出: False
  • isinstance() 会考虑继承关系,而 type() 只检查对象的直接类型。

总结

isinstance() 是 Python 中用于类型检查的常用工具,特别适合需要处理继承关系或多类型检查的场景。

相关文章:

  • 【爬虫】使用 Scrapy 框架爬取豆瓣电影 Top 250 数据的完整教程
  • java八股文-mysql
  • SQL与数据库程序设计
  • 用队列实现栈
  • 人工智能之目标追踪DeepSort源码解读(yolov5目标检测,代价矩阵,余弦相似度,马氏距离,匹配与预测更新)
  • 牛顿法:用泰勒级数求解平方根的秘籍
  • 004 python变量
  • OpenVAS 工具使用全攻略
  • java练习(24)
  • 《解锁自然语言处理:让公众正确拥抱AI语言魔法》
  • LabVIEW中的icon.llb 库
  • 【华为OD机考】2024E+D卷真题【完全原创题解 详细考点分类 不断更新题目 六种主流语言Py+Java+Cpp+C+Js+Go】
  • Transformer(3): Add Norm
  • React VS Vue
  • 【R语言】方差分析
  • 什么是大模型以及如何部署大模型
  • 基于大数据的网购球鞋分析系统的设计与实现
  • CSS Grid 网格布局,以及 Flexbox 弹性盒布局模型,它们的适用场景是什么?
  • 【已解决】TypeError: AsyncConnectionPool.__init__(), new install bug, httpx==0.24.1
  • TLS和SSL的区别
  • 不主动上门检查,上海已制定14个细分领域“企业白名单”甄别规则
  • 上海如何为街镇营商环境赋能?送政策、配资源、解难题、强活力
  • 我国外汇储备规模连续17个月稳定在3.2万亿美元以上
  • 中虎跳峡封闭仍有游客逆行打卡,景区:专人值守防意外
  • 美股三大指数均收涨超1%,热门中概股强势拉升
  • 天津航空一航班盘旋14圈才降落,客服:因天气影响