📅  最后修改于: 2023-12-03 14:46:37.940000             🧑  作者: Mango
在Python中,isinstance()
是一个内置函数,用于判断一个对象是否是另一个类或其派生类的实例。
isinstance()
的语法如下所示:
isinstance(object, classinfo)
其中,两个参数的含义如下:
object
:需要判断的对象classinfo
:类名或类型的元组使用 isinstance()
可以方便地判断一个对象的类型,实现一些多态的操作。
例如,下面的代码演示了如何使用 isinstance()
判断一个对象的类型:
class Animal:
pass
class Dog(Animal):
pass
class Cat(Animal):
pass
dog = Dog()
cat = Cat()
print(isinstance(dog, Dog)) # True
print(isinstance(cat, Animal)) # True
print(isinstance(dog, Animal)) # True
print(isinstance(cat, Dog)) # False
上述代码定义了三个类 Animal
、Dog
和 Cat
。
然后,我们创建了一个 Dog
类的实例 dog
和一个 Cat
类的实例 cat
。
最后,使用 isinstance()
函数分别判断 dog
和 cat
对象的类型,输出判断结果。
除了用于判断对象的类型,isinstance()
还可以用于类型检查和类型转换。
例如,下面的代码演示了如何使用 isinstance()
进行类型检查和类型转换:
data = ['hello', 123, True]
result = []
for item in data:
if isinstance(item, str):
result.append(item.upper())
elif isinstance(item, int):
result.append(str(item))
elif isinstance(item, bool):
result.append(int(item))
print(result)
上述代码将一个列表 data
中的元素进行类型检查和类型转换,然后将转换后的结果添加到一个新的列表 result
中。具体来说:
result
中result
中result
中最终,输出 result
列表的内容。
isinstance()
是一个非常常用的函数,它可以方便地判断一个对象的类型,进而实现多态的操作。
同时,isinstance()
还可以用于类型检查和类型转换,使得代码更加简洁和可读。