Python的type函数和typing模块如何构成强大的类型系统?
摘要:1 概述:Python type 函数 1.1 首先澄清一个概念 严格来说,type 在 Python 中是一个内置函数,而不是一个独立的模块。它有两个主要用途: 查看对象的类型(最常用的用法) 动态创建类(高级用法) 1.2 基础用法:查
1 概述:Python type 函数
1.1 首先澄清一个概念
严格来说,type 在 Python 中是一个内置函数,而不是一个独立的模块。它有两个主要用途:
查看对象的类型(最常用的用法)
动态创建类(高级用法)
1.2 基础用法:查看类型
# 基本用法
print(type(123)) # <class 'int'>
print(type("hello")) # <class 'str'>
print(type([1, 2, 3])) # <class 'list'>
print(type({"a": 1})) # <class 'dict'>
为什么用 type() 而不是 isinstance()?
# type() 返回的是精确类型
print(type([]) == list) # True
print(type([]) == object) # False(虽然 list 继承自 object)
# isinstance() 会考虑继承关系
print(isinstance([], list)) # True
print(isinstance([], object)) # True
经验法则:判断具体类型用 type(),判断"是不是某种类型"用 isinstance()。
1.3 高级用法:动态创建类
这是 type() 的"隐藏功能",也是理解 Python 元类(metaclass)的关键。
