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)的关键。
阅读全文