Python type() 函数

Python3 内置函数 Python3 内置函数


type() 是 Python 中用于获取对象类型的内置函数。

type() 是 Python 中最常用的函数之一,可以帮助我们了解对象的类型,是动态类型语言中非常重要的工具。

单词释义type 意为"类型",用于获取对象的类型信息。


基本语法与参数

语法格式

type(object)
type(name, bases, dict)

参数说明

  • 参数 object
    • 类型: 任意对象
    • 描述: 要获取类型的对象。
  • 参数 name, bases, dict
    • 类型: 字符串、类元组、字典
    • 描述: 用于动态创建类。

函数说明

  • 返回值: 返回对象的类型(一个 type 对象)。

实例

示例 1:获取对象类型

实例

# 获取基本类型的类型
print(type(123))       # 输出: <class 'int'>
print(type(3.14))      # 输出: <class 'float'>
print(type("hello"))   # 输出: <class 'str'>
print(type(True))      # 输出: <class 'bool'>
print(type([1, 2, 3])) # 输出: <class 'list'>
print(type({"a": 1})) # 输出: <class 'dict'>
print(type((1, 2)))   # 输出: <class 'tuple'>
print(type({1, 2}))   # 输出: <class 'set'>

# None 的类型
print(type(None))      # 输出: <class 'NoneType'>

运行结果预期:

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'dict'>
<class 'tuple'>
<class 'set'>
<class 'NoneType'>

代码解析:

  1. type() 返回对象的类型对象。
  2. 每个类型本身也是 type 类的实例。

示例 2:比较类型

实例

# 直接比较
value = 42
print(type(value) == int)   # 输出: True
print(type(value) == str)   # 输出: False

# 使用 isinstance(推荐)
print(isinstance(42, int))        # 输出: True
print(isinstance("hello", str))  # 输出: True
print(isinstance(42, (int, float)))  # 输出: True

# 检查自定义类
class Dog:
    pass

class Cat:
    pass

dog = Dog()
print(type(dog) == Dog)    # 输出: True
print(type(dog) == Cat)    # 输出: False
print(isinstance(dog, Dog)) # 输出: True

运行结果预期:

True
False
True
True
True
True
False
True

代码解析:

  • 可以使用 type() == 进行精确类型比较。
  • 但更推荐使用 isinstance(),因为它支持继承。

示例 3:动态创建类

实例

# 使用 type() 动态创建类
Person = type("Person", (), {
    "name": "未知",
    "age": 0,
    "greet": lambda self: f"你好,我是 {self.name}"
})

# 使用动态创建的类
p = Person()
p.name = "Tom"
print(p.name)         # 输出: Tom
print(p.greet())      # 输出: 你好,我是 Tom

# 创建带继承的类
class Animal:
    def speak(self):
        return "..."

class Dog(Animal):
    def speak(self):
        return "汪汪!"

DogClass = type("DogClass", (Animal,), {
    "speak": lambda self: "汪汪!"
})

dog = DogClass()
print(dog.speak())  # 输出: 汪汪!
print(isinstance(dog, Animal))  # 输出: True

运行结果预期:

动态创建类在实际编程中较少使用,但理解这一点对metaclass编程很重要。

type() 是 Python 中最基础和重要的函数之一。


Python3 内置函数 Python3 内置函数