介绍
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()函数时应保证代码的简洁性和可读性。