python的type函数详解

  • Post category:Python

下面是关于Python中type()函数的详细讲解:

1. type()函数的基本用法

在Python中,type()函数可以用来检查一个对象的数据类型。它的基本用法十分简单,在括号中输入一个对象,函数会返回这个对象所属的数据类型。

下面举例说明:

a = 123
print(type(a))  # <class 'int'>

b = 'hello'
print(type(b))  # <class 'str'>

c = [1, 2, 3]
print(type(c))  # <class 'list'>

d = {'name': 'Jack', 'age': 18}
print(type(d))  # <class 'dict'>

e = (1, 2, 3)
print(type(e))  # <class 'tuple'>

f = True
print(type(f))  # <class 'bool'>

这段代码中,我们分别使用了type()函数检查了6种常见类型的数据,包括整型、字符串、列表、字典、元组和布尔值。可以看到,函数返回值的格式为“<class '数据类型'>”。

2. type()函数与面向对象程序设计

在面向对象程序设计中,所有的数据类型都可以看做是一个类的实例。这时候,使用type()函数不仅可以检查数据类型,还可以判断某个对象是否为某个类的实例。语法如下:

isinstance(object, classinfo)

其中,object是要判断的对象,classinfo可以是一个类名,也可以是一个由多个类名组成的元组。

下面我们举个例子,看看如何使用isinstance()函数:

class Dog:
    def __init__(self, name):
        self.name = name

class Cat:
    def __init__(self, name):
        self.name = name

pet1 = Dog('小黄')
pet2 = Cat('小白')

print(isinstance(pet1, Dog))    # True
print(isinstance(pet2, Dog))    # False
print(isinstance(pet2, (Cat, Dog)))   # True
print(isinstance(pet1, (Cat, Dog)))   # True

这段代码中,我们定义了两个类DogCat,它们分别代表了狗和猫这两种宠物。接着,我们分别创建了两个对象pet1pet2,分别是DogCat的实例。最后,我们使用isinstance()函数来判断这些对象的类型,以及它们是否为DogCat的实例。可以看到,函数的返回值分别为TrueFalse,并且在判断同时可以使用元组来检查多个类。

除了isinstance()函数之外,还有一个函数issubclass()可以用来检查一个类是否是另一个类的子类。它的语法如下:

issubclass(class, classinfo)

其中,class是待检查的子类,classinfo是父类或由多个父类组成的元组。

下面我们来看一下,如何使用issubclass()函数:

class Animal:
    def __init__(self, name):
        self.name = name

class Dog(Animal):
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

class Cat(Animal):
    def __init__(self, name, color):
        self.name = name
        self.color = color

print(issubclass(Dog, Animal))   # True
print(issubclass(Cat, Dog))      # False

这段代码中,我们定义了三个类AnimalDogCat,分别代表了动物、狗和猫。其中,DogCat都是Animal的子类。接着,我们使用issubclass()函数来检查DogCat的关系,可以看到,函数的返回值分别是TrueFalse,验证了它们之间的继承关系。

总结

以上就是Python中type()函数的详细讲解,通过这个函数,我们可以检查一个对象的数据类型,并且在面向对象程序设计中,还可以用来检查对象和类之间的关系。