字典 与 Python 对象 的总结

一、本质(最核心)

1. 字典(dict)

字典是 Python 自带的一种“数据结构”
用来存 key: value 键值对。

长得有标志性

{ "key": value }

2. 对象(Object)

Python 里一切皆对象!
数字、字符串、函数、类实例、SimpleNamespace……全都是对象

比如:
能使用 .属性 的对象

obj.name
obj.raw_text

二、字典(dict)总结

1. 长什么样

{
    "name": "小明",
    "age": 20,
    "raw_text": "文本内容"
}

标志性符号:大括号 {}

2. 创建方式(全部)

① 字面量(最常用)

d = {"name": "小明"}

② 空字典,后赋值

d = {}
d["name"] = "小明"

③ dict() 函数

d = dict(name="小明")

④ 可迭代对象创建

d = dict([("name", "小明")])

3. 取值 / 赋值

必须用:方括号 ["key"]

d["raw_text"]      # 取值
d["raw_text"] = 新值  # 赋值

4. 绝对不能做

d.raw_text  # ❌ 报错:字典没有 . 属性

5. 特点

  • 属于数据容器
  • 用来存结构化数据
  • key 必须是不可变类型(字符串、数字等)
  • 只能用 [] 访问

三、对象(Object)总结

1. 什么是对象

Python 中所有东西都是对象

字典也是Python对象~

2. 能使用 .属性 的对象有哪些

① 类创建的对象(最标准)

class Person:
    pass

p = Person()
p.name = "小明"
p.raw_text = "文本"

② 带构造函数的类对象

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

p = Person("小明")

③ SimpleNamespace 对象(官方简易对象)

from types import SimpleNamespace
p = SimpleNamespace(name="小明")

④ 模块、函数、字符串、列表……全是对象

只是它们不一定能随便加 .属性

3. 对象取值 / 赋值

必须用:点 .

obj.raw_text      # 取值
obj.raw_text = 新值 # 赋值

4. 绝对不能做

obj["raw_text"]  # ❌ 报错:对象不能用 []

5. 对象的本质

  • 实例
  • 拥有 属性 + 方法
  • . 访问成员
  • 不是数据结构,是“实例”

四、字典 VS 对象 对比表

项目 字典 dict 对象 Object
外观符号 大括号 {} 无括号
访问方式 dict["key"] obj.key
创建方式 {}, dict() 类实例、SimpleNamespace
是否需要导入 不需要,Python 原生 类要定义,SimpleNamespace 需要导入
内部结构 key-value 映射表 属性存储在 dict
错误访问方式 dict.key → AttributeError obj["key"] → TypeError
本质 数据结构,用于存储数据 类的实例,表示一个“东西/实体”
灵活性 key 可随时增删 属性可动态增加(大部分对象)
你之前的报错 把字典当对象用 → 报错

更多推荐