您的位置:

Python 3 isinstance用法总结

介绍

isinstance()是Python 3内置的一个函数,用于检查一个对象是否是一个特定类或类型的实例。比如我们经常会碰到的判断变量是否为整数,是不是字符串等等。而且isinstance()函数具有灵活性,它接受一个类型或类型的元组并返回一个布尔值。

在Python中,使用isinstance() 函数可以帮助我们更好地理解变量的类型,以及变量是否是我们希望的类型。

作用

isinstance()函数有时会被认为是检查变量类型的最佳方法。下面将分别从以下三个方面介绍isinstance()函数的用法。

1.检查一个变量或对象的类型

在Python中,我们经常需要检查一个变量或对象的类型。对于基本类型的数据,使用基本的if语句可以轻松地判断。但是,对于更复杂的数据类型,我们将需要更高效的方法。在这种情况下,使用isinstance()函数是一种常用的解决方法。

num = 123
if isinstance(num, int):
    print("num is an integer")
else:
    print("num is not an integer")
输出结果为:
num is an integer

首先定义了一个变量num,它的值是整数123。然后使用isinstance()函数检查变量num是否是一个整数。在这种情况下,isinstance()函数返回True,所以输出结果为num is an integer。

2.检查对象是否属于给定的类

在Python中,一个对象可能是由多个类的实例组成。对于这种情况,我们可以使用isinstance()函数检查对象是否属于给定的类。

class Dog:
    def bark(self):
        print("woof woof")

class Cat:
    def meow(self):
        print("meow meow")

class Animal:
    pass

def animal_sounds(animal):
    if isinstance(animal, Dog):
        animal.bark()
    elif isinstance(animal, Cat):
        animal.meow()
    else:
        print("unknown animal sound")

dog = Dog()
cat = Cat()
animal = Animal()

animal_sounds(dog)
animal_sounds(cat)
animal_sounds(animal)
输出结果为:
woof woof
meow meow
unknown animal sound

在上面的代码示例中,我们定义了三个类:Dog,Cat 和Animal。 然后我们实现了一个功能animal_sounds(),它接受一个参数,判断参数是否是Dog或Cat的实例,如果是,则分别调用bark()和meow()方法打印对应动物的叫声;如果不是,则输出unknown animal sound的信息。

3.检查一个变量是否属于一个元组中的任何一个类

isinstance()函数可以接受一个由多个类型组成的元组作为第二个参数。当检查变量时,如果变量类型与元组中的任何类型之一匹配,则isinstance()函数将返回True。

num = 123
if isinstance(num, (int, float)):
    print("num is a number")
else:
    print("num is not a number")
输出结果为:
num is a number

在上面的代码示例中,我们检查变量num是否为数字。isinstance(num, (int, float))的语法表示num是int类型或float类型。由于num变量是int类型,因此isinstance()函数返回True,输出结果为num is a number。

总结

isinstance()函数是Python内置的非常有用的函数。它可以检查对象或变量的类型,检查对象是否属于给定的类,并检查变量是否属于元组中的任何一个类型之一。这种用法可以帮助我们更好地理解我们的变量与类型之间的关系,从而提高我们的编程效率。使用isinstance()函数时应保证代码的简洁性和可读性。