Python内建对象体系_核心类型说明【指导】

15次阅读

python内建对象分不可变(数值、字符串、元组)和可变(列表、字典、集合)两类,不可变对象支持哈希与线程安全,可变对象支持原地修改;None为单例空值,boolint子类;所有值均为对象,类型本身也是type的实例,Python是强动态类型语言。

Python内建对象体系_核心类型说明【指导】

Python 的内建对象体系围绕几个核心类型构建,它们是语言运行和日常编程的基石。理解这些类型的行为、边界与设计意图,比单纯记忆语法更重要。

不可变对象:数值、字符串、元组

数值(intFloatcomplex)、strtuple 是典型的不可变类型。一旦创建,其内容无法被修改——任何“改变”操作实际返回新对象。

  • 比如 s = “hello”; s += ” world” 并非修改原字符串,而是创建新字符串并让 s 指向它
  • (1, 2) 中嵌套可变对象(如 ([1], 2))时,元组本身不可变,但其中列表仍可原地修改
  • 不可变性带来线程安全和哈希支持——只有不可变对象才能作为字典键或集合元素

可变对象:列表、字典、集合

listdictset 支持就地修改,方法如 append()update()add() 不会新建对象,而是直接变更原对象的内部状态。

  • 赋值语句(如 b = a)只是增加引用,修改 b 会影响 a ——这是浅拷贝行为的根源
  • 需要独立副本时,用 a.copy()(列表/字典)、set(a)(集合),或导入 copy 模块处理嵌套结构
  • 字典键必须不可变,但值可以是任意类型;集合元素也必须可哈希,因此不能包含列表或字典

None、布尔与空值语义

None 是单例对象,表示“无值”,不是 0、空字符串或 False;bool 类型只有 TrueFalse 两个实例,所有对象都有真值(truthiness)判断规则。

立即学习Python免费学习笔记(深入)”;

  • 空容器([]{}set())、零值(00.0)、None 默认为 False;其余为 True
  • 避免用 if x == None:,应写 if x is None: ——因为 is 判断身份,更准确且符合惯例
  • boolint 的子类:True == 1False == 0 成立,可用于简单计数场景

类型本质:一切都是对象,一切都有类型

Python 中没有“原始类型”,所有值都是对象,每个对象都有唯一标识(id())、类型(type())和值。类型本身也是对象,由内置类(如 intstr)实例化而来。

  • type(42) 返回 ,而 type(int) ——说明 int 是元类 type 的实例
  • isinstance(x, (int, float)) 替代多重 type(x) == … 判断,更灵活且支持继承
  • 动态类型不等于弱类型:Python 强类型,不允许隐式转换,比如 “123” + 456 会报错,必须显式转换
text=ZqhQzanResources