📅  最后修改于: 2023-12-03 14:42:10.919000             🧑  作者: Mango
在Python中,isinstance
是一个非常有用的内置函数。它可以用于检查一个对象是否属于指定的类或类型的子类。isinstance
函数接受两个参数:要检查的对象和一个类型或类对象。如果对象是所给类型或类的实例,则返回True,否则返回False。
# 检查字符串是否为str类型
text = "Hello, world!"
if isinstance(text, str):
print("text is a string")
# 检查数字是否为int或float类型
num = 3.14
if isinstance(num, (int, float)):
print("num is a number")
# 检查对象是否为自定义类型
class Dog:
def bark(self):
print("Woof!")
class Cat:
def meow(self):
print("Meow!")
dog = Dog()
cat = Cat()
if isinstance(dog, Dog):
print("dog is a dog")
if isinstance(cat, Dog):
print("cat is a dog")
else:
print("cat is not a dog")
如果第一个参数是第二个参数的实例或者是它的子类,则返回True
。否则返回False
。
isinstance
函数时,建议将检查顺序从子类到父类。因为如果子类和父类都可以匹配,isinstance
将返回子类。isinstance
可以用来判断一个变量是否为类名,但不可以用来判断是否为类的实例。type
来判断变量的类型,但它不会关心对象是否是指定类型的子类。