欢迎访问宙启技术站
智能推送

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()方法只会判断指定类或其子类是否与检查对象的类型匹配,如果要判断某个对象是否与另一个对象相同,需要使用另一种方法进行比较。