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

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
博客园 - 聂微东
S
Schneier on Security
The Last Watchdog
The Last Watchdog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Webroot Blog
Webroot Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Schneier on Security
Schneier on Security
PCI Perspectives
PCI Perspectives
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
Spread Privacy
Spread Privacy
Cisco Talos Blog
Cisco Talos Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Help Net Security
Help Net Security
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
NISL@THU
NISL@THU
博客园 - Franky
N
Netflix TechBlog - Medium
Know Your Adversary
Know Your Adversary
L
Lohrmann on Cybersecurity
F
Fortinet All Blogs
WordPress大学
WordPress大学
U
Unit 42
Hacker News: Ask HN
Hacker News: Ask HN
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
A
Arctic Wolf
酷 壳 – CoolShell
酷 壳 – CoolShell
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Security Affairs
H
Hacker News: Front Page
TaoSecurity Blog
TaoSecurity Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog RSS Feed
罗磊的独立博客
Cloudbric
Cloudbric
Y
Y Combinator Blog
B
Blog
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
L
LINUX DO - 最新话题
The Register - Security
The Register - Security
D
DataBreaches.Net
GbyAI
GbyAI

博客园 - 悠哉大斌

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