说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 的内置函数 isinstance() 用来判断一个对象是否是一个已知的类型,或者说检测对象是不是这个类型的实例、这个类的实例。如果要判断两个类型是否相同推荐使用 isinstance()。
numbers = [1, 2, 3, 4, 2, 5]
# 检查 numbers 是否为列表的实例
isinstance(numbers, list)
# True
语法为:
isinstance(obj, class_or_tuple, /)
其中:
返回:
功能说明:
如果 class_or_tuple 是元组那么以下相同:
isinstance(x, (A, B, ...))
# 同上
isinstance(x, A) or isinstance(x, B) or ...
a = 2
isinstance(a,int)
# True
isinstance(a,str)
# False
isinstance(a,(str,int,list)) # 是否其中一个
isinstance(a, str | int | list)
# True
import types
isinstance(None, types.NoneType)
# True
isinstance(print, types.BuiltinFunctionType)
# True
class Foo:
a = 5
foo = Foo()
isinstance(foo, Foo) # True
isinstance(foo, (list, tuple)) # False
isinstance(foo, (list, tuple, Foo)) # True
区别总结为:
关于 isinstance() 与 type() 的区别可以看以下示例:
class A:
pass
class B(A):
pass
isinstance(A(), A) # True
type(A()) == A # True
isinstance(B(), A) # True
type(B()) == A # False
有人也用 type(variable) == str
这种方式判断某个对象的类型,虽然此方法是可行的,但不提倡。
更新时间:Feb. 19, 2022, 8:15 p.m. 标签:python isinstance 类型 实例