惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
W
WeLiveSecurity
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
WordPress大学
WordPress大学
博客园_首页
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
The Cloudflare Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tenable Blog
Google Online Security Blog
Google Online Security Blog
PCI Perspectives
PCI Perspectives
博客园 - 三生石上(FineUI控件)
Recent Commits to openclaw:main
Recent Commits to openclaw:main
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
Forbes - Security
Forbes - Security
C
CERT Recently Published Vulnerability Notes
罗磊的独立博客
Security Latest
Security Latest
小众软件
小众软件
T
The Exploit Database - CXSecurity.com
C
Cisco Blogs
量子位
P
Privacy & Cybersecurity Law Blog
Schneier on Security
Schneier on Security
N
News and Events Feed by Topic
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题
V2EX - 技术
V2EX - 技术
C
Cyber Attacks, Cyber Crime and Cyber Security
Scott Helme
Scott Helme
Cisco Talos Blog
Cisco Talos Blog
S
Schneier on Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Vulnerabilities – Threatpost
N
News and Events Feed by Topic
U
Unit 42
腾讯CDC
博客园 - 聂微东
博客园 - 【当耐特】
B
Blog
P
Proofpoint News Feed
B
Blog RSS Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com

博客园 - 悠哉大斌

AI Agent 安全沙箱技术对比:E2B、Cube Sandbox 与 Docker Sandboxes linux 升级 claude code的坑 debian(WSL) apt 代理配置 linux内核之Namespaces、Cgroups、Capabilities、Seccomp和Landlock 大语言模型推理中的隐藏瓶颈及其解决方法 Docker Sandboxes 技术是什么,和docker容器有什么区别 什么是 Docker Agent以及一个Docker Agent示例 windows wsl 安装 Temurin® JDK claude Code 和 codex 作为编程代理,前者使用typescript开发,后者使用rust,他们的决策依据是什么 Java 并发编程发展史与 java.util.concurrent 全景解析 LLM 真的改变了编码风格吗? 如果人工智能会犯错且不精确,为什么它正在改变世界? Python 的协程模型和 JavaScript 的 async/await python闭包和function.__closure__特殊属性 python 的 dunder name和 sunder name 基于nodejs设计REST API的知名开源框架 windows上使用node-oracledb Thick 模式连接 Oracle 11g Claude Code CLI连接 DeepSeek V4模型后调用报400错误 Python 泛型演变史 Python 类型别名的演变 Python 类型提示的演变史 PEP 593 新增的Annotated 类型 Alibaba AgentScope 和 microsoft agent framework 详细对比分析 spring AI Alibaba Agent Framework 和 agentscope有什么区别和联系 AI Agent协作模式以及主流开源框架对协作模式的支持 Tailscale 是如何接管 DNS 的? Agent = Model + Harness 使用rust编写typescript编译器的难点在什么地方,哪些数据结构是rust不擅长的? TypeScript/JavaScript 中的异步迭代语句 js中的生成器函数 Tailscale Serve and Funnel openclaw gateway的网络绑定模式 websocket协议和http协议有何依赖关系? MCP通信的双方是谁? claude code MCP 安装范围 如何在wsl2环境下给claude code cli 配置 playwright-mcp wsl的网络模式有哪几种,有哪些区别? AI Agent memory是什么? ai agent skills是什么? Go测试生态系统工具与最佳实践深度调研(聚焦认证授权系统) 线性代数中常见矩阵类型的概念关系思维导图 三种主流授权策略
python里对象(object)到底是什么
悠哉大斌 · 2026-04-23 · via 博客园 - 悠哉大斌

在 Python 里函数和类都是对象,而且都属于“可被赋值、传递、作为参数返回”的一等对象(first-class object)。

更具体一点:

  • 函数对象:function
  • 类对象:type(类本身是 type 的实例)
  • 实例对象:class 创建出来的对象

Python 设计哲学里最核心、也最容易混乱的一点:“对象(object)到底是什么?”


一、最核心的一句话定义

在 Python 里:

对象 = 运行时内存中的一个实体,它同时包含:数据 + 类型 + 行为

换成更“Python源码视角”的说法:

对象 = 带有类型信息的内存块(everything is a PyObject)


二、Python 官方级别的本质定义(非常重要)

在 CPython 里,每个对象本质上都是:

typedef struct {
    PyTypeObject *ob_type;
} PyObject;

也就是说:

每个对象都必须知道:它“是什么类型”


三、所以“对象”不是“东西”,而是“统一接口的实体”

你可以这样理解:

概念 是否对象 本质
3 int对象
"abc" str对象
function function对象
class type对象
module module对象
instance 某个class的对象

👉 结论:

对象不是类别,而是“运行时存在的统一结构”


四、困惑的关键点:函数/类为什么也是对象?

因为 Python 把这些都统一成:

1. 函数 = function object

def f():
    pass

本质是:

一个包含 code + globals + defaults 的对象

所以:

  • f.__code__
  • f.__globals__
  • f.__closure__

这些都是“对象属性”


2. 类 = type 的实例

class A:
    pass

本质是:

A = type("A", bases, dict)

所以:

  • 类不是“模板”
  • 类是“type 创建出来的对象”

五、最容易混淆的三层结构(关键!)

可以用这张“心智模型”理解:

        ┌──────────────┐
        │   type       │   ← 元类(造类的)
        └──────┬───────┘
               ↓
        ┌──────────────┐
        │   class A    │   ← 类对象(type的实例)
        └──────┬───────┘
               ↓
        ┌──────────────┐
        │   instance   │   ← 实例对象
        └──────────────┘

再加一层函数:

function object
   ↓
code object
   ↓
closure (可选)

六、为什么你会觉得“对象”很模糊?

因为 Python 里“对象”不是分类概念,而是:

统一运行时模型

换句话说:

  • Java:类 vs 基本类型(分裂)
  • C++:对象 vs 函数 vs 类型(分裂)
  • Python:全部统一成 object

七、给你一个“彻底统一的定义”(最重要)

如果你只记一句话,可以记这个:

Python 中对象 = 带类型指针的运行时结构体(PyObject),所有值、函数、类、模块都遵守这一模型

附:一个容易混淆但关键的点

对象 类型
函数 function
方法(绑定后) method
type
类实例 class
例子
class A:
    def f(self):
        pass

a = A()

print(type(A))      # type
print(type(a))      # A
print(type(A.f))    # function(未绑定)
print(type(a.f))    # method(绑定方法)

adeefda9-1385-4b17-92d4-af131a57dedf