Python中的isinstance函数 - 用法和示例
发布时间:2023-06-04 04:23:49
Python语言中,isinstance()函数是一个内建函数,主要用于判断一个对象是否是指定的类(class)或者是其子类(subclass)。这个函数的语法格式为:isinstance(object,classinfo),其中object代表要进行判断的对象,classinfo代表指定的类或类型。
用法示例:
1. 判断数据类型:
检查一个变量的数据类型:
a = 5 b = "Hello" c = [1,2,3] print(isinstance(a, int)) #True print(isinstance(b, str)) #True print(isinstance(c, list)) #True
输出结果为True,因为a是int类型、b是str类型、c是list类型。
2. 判断对象类型:
检查一个对象是否属于指定的类或类型:
class Animal:
def __init__(self, name):
self.name = name
class Dog(Animal):
def __init__(self, name):
Animal.__init__(self, name)
class Cat(Animal):
def __init__(self, name):
Animal.__init__(self, name)
dog = Dog("Tommy")
cat = Cat("Lucy")
print(isinstance(dog, Dog)) #True
print(isinstance(cat, Cat)) #True
print(isinstance(dog, Animal)) #True
print(isinstance(cat, Animal)) #True
print(isinstance(cat, Dog)) #False
输出结果中,dog和cat分别属于Dog和Cat类,因此 个和第二个语句的结果都是True;由于Dog和Cat都是Animal的子类,所以第三个和第四个语句的结果也都是True;最后一个语句返回False,因为cat不是Dog类型的对象。
3. 判断父类:
检查一个对象是否属于指定类的父类:
class Animal:
def __init__(self, name):
self.name = name
class Dog(Animal):
def __init__(self, name):
Animal.__init__(self, name)
class Cat(Animal):
def __init__(self, name):
Animal.__init__(self, name)
dog = Dog("Tommy")
cat = Cat("Lucy")
print(isinstance(dog, Animal)) #True
print(isinstance(cat, Animal)) #True
输出结果中,dog和cat都是Animal类的子类,因此返回True。
总结:
isinstance()方法在Python中很常用,不仅可以用于判断变量的数据类型,还可以用于判断对象是否属于指定类或类型。需要注意的是,isinstance()方法只会判断指定类或其子类是否与检查对象的类型匹配,如果要判断某个对象是否与另一个对象相同,需要使用另一种方法进行比较。
