dir (obj) 与dir()
用大白话 代码例子给你讲透先给核心结论这两句话是在说dir(obj)是 Python 内置的「固定规则工具」__dir__()是类里「开发者自定义的钩子」两者的返回结果永远做不到 100% 完全一样而__dir__()返回什么完全由你写的类代码决定没有固定规则。一、先讲第一句「dir (obj) 永远不会和dir() 100% 完全相同」这里的「永远不会 100% 相同」不是指元素内容不一样而是指返回结果的顺序、类型、细节处理永远存在差异核心原因是dir(obj)是 Python 内置的上层封装函数它有自己固定的处理逻辑不管__dir__()返回什么dir()都会做额外的标准化处理导致两者结果不可能完全一致。具体差异体现在 3 个方面1. 顺序永远不同哪怕两者的元素内容完全一样dir()也会做统一排序而__dir__()按类内部的实现顺序返回顺序永远不一样。pythonclass MyClass: def __init__(self): self.name test self.age 18 def __dir__(self): return [name, age] # 自定义顺序 obj MyClass() print(dir(obj)) # 输出[age, name] dir做了排序 print(obj.__dir__()) # 输出[name, age] 按你写的顺序返回2. 类型可能完全不同__dir__()可以返回任何可迭代类型生成器、元组等而dir()永远会把结果转换成标准化的列表类型载体类型完全不同。pythonclass MyClass: def __dir__(self): yield name # 返回生成器 yield age obj MyClass() print(type(obj.__dir__())) # 输出class generator print(type(dir(obj))) # 输出class list3. 细节处理不同dir()会做额外的标准化处理比如去重、过滤极端内部属性而__dir__()返回的是原始内容不会做任何处理。 比如你让__dir__()返回重复元素dir()会自动去重结果就完全不一样了pythonclass MyClass: def __dir__(self): return [name, age, name] # 重复元素 obj MyClass() print(dir(obj)) # 输出[age, name] 自动去重 print(obj.__dir__()) # 输出[name, age, name] 保留原始重复二、再讲第二句「dir() 的返回结果完全由类的实现决定」这句话的意思是__dir__()是类里的魔法方法你在类里怎么写这个方法它就返回什么内容没有任何固定的返回规则完全由开发者自己决定。举几个极端例子你就懂了你可以让__dir__()只返回你指定的 2 个属性不管类里有多少属性pythonclass MyClass: def __init__(self): self.name test self.age 18 self.gender 男 # 这个属性故意不返回 def __dir__(self): return [name, age] # 只返回这两个 obj MyClass() print(obj.__dir__()) # 输出[name, age]你甚至可以让__dir__()返回和类属性完全无关的内容pythonclass MyClass: def __dir__(self): return [我是自定义的, 完全不管类里有什么] obj MyClass() print(obj.__dir__()) # 输出[我是自定义的, 完全不管类里有什么]你可以让__dir__()返回任何类型的可迭代对象pythonclass MyClass: def __dir__(self): return (name, age) # 返回元组 obj MyClass() print(obj.__dir__()) # 输出(name, age)三、最终总结dir(obj)是「固定规则的工具」不管你__dir__()返回什么它都会按自己的逻辑做排序、类型转换、去重等处理所以永远不会和__dir__()的原始结果 100% 完全相同__dir__()是「开发者自定义的钩子」返回什么内容、什么类型、什么顺序完全由你在类里的代码实现决定没有固定规则。

相关新闻

AI写作结尾总被忽略?揭秘让转化率飙升47%的5步号召设计法:从心理学到NLP实战

AI写作结尾总被忽略?揭秘让转化率飙升47%的5步号召设计法:从心理学到NLP实战

更多请点击: https://intelliparadigm.com 第一章:AI写作结尾总被忽略?揭秘让转化率飙升47%的5步号召设计法:从心理学到NLP实战 AI生成内容常以信息密度高见长,却普遍在结尾处陷入“戛然而止”的陷阱——缺乏行为引导…

2026/10/15 23:00:27 阅读更多 →
鸿蒙报错速查:Cannot find name ‘AppStorageV2‘,忘 import 编译就炸,根因 + 眜解法

鸿蒙报错速查:Cannot find name ‘AppStorageV2‘,忘 import 编译就炸,根因 + 眜解法

报错原文 ERROR: 10505001 ArkTS Compiler Error Error Message: Cannot find name AppStorageV2. Did you mean to use import AppStorageV2 from "ohos.arkui.StateManagement" instead? At File: xxx.ets:N:N报错触发场景 你写鸿蒙 ArkUI V2 应用级状态时&#x…

2026/10/6 10:31:33 阅读更多 →
AI服务上线即崩?:从Trace到Metric再到Flame Graph——一套闭环性能分析工作流(仅限内部团队验证版)

AI服务上线即崩?:从Trace到Metric再到Flame Graph——一套闭环性能分析工作流(仅限内部团队验证版)

更多请点击: https://kaifayun.com 第一章:AI服务上线即崩?——性能危机的典型表征与归因范式 当大模型推理API在发布后5分钟内出现98%的超时率、GPU显存瞬间打满、请求队列堆积至数万条,这并非偶然故障,而是系统性性…

2026/10/9 6:47:32 阅读更多 →

最新新闻

从波形到断言:用脚本把实验参考答案变成可验证过程

从波形到断言:用脚本把实验参考答案变成可验证过程

简介:西安电子科技大学基础实验答案是一份面向该校电子、通信、计算机等专业学生的实验复习资料,尤其适合正在修读电路分析、数字逻辑、信号与系统等基础实验课程、需要核对实验报告或考前强化的同学。压缩包内仅包含一个Word文档,大小约669K…

2026/10/15 23:00:25 阅读更多 →
Dynamics 365插件注册全流程解析:从零基础到生产就绪

Dynamics 365插件注册全流程解析:从零基础到生产就绪

1. 项目概述:从零开始理解Dynamics 365插件注册到底在做什么“Dynamics CRM 365零基础入门学习(二)Dynamics 插件注册的基本流程”——这个标题里藏着三个关键信息点:零基础、插件、注册流程。它不是讲怎么写C#代码,也…

2026/10/15 23:00:25 阅读更多 →
Flutter+SQLite宠物生命周期管理App开发实战:AI辅助从零搭建

Flutter+SQLite宠物生命周期管理App开发实战:AI辅助从零搭建

1. 项目缘起与整体设计思路1.1 为什么选宠物生命周期管理这个方向做任何一个从零起步的项目,第一步永远不是写代码,而是想清楚"这东西到底给谁用、解决什么痛点"。宠物生命周期管理这个方向,乍看像是个小众赛道,但实际拆…

2026/10/15 23:00:25 阅读更多 →
AI编程实战:pytest、Nginx与重构中的认知协作者

AI编程实战:pytest、Nginx与重构中的认知协作者

1. 这不是“让AI写代码”,而是我每天真实推进项目的编程方式“我如何用 AI 做真实编程”——这句话里最需要被拆解的,是“真实”两个字。它不是指“用AI生成一段能跑通的Hello World”,也不是“把Stack Overflow答案喂给大模型再润色一遍”。…

2026/10/15 23:00:25 阅读更多 →
Cinder备份自动化:基于YAML策略的标准化运维实践

Cinder备份自动化:基于YAML策略的标准化运维实践

简介:这是一份面向OpenStack运维工程师与云平台开发者的Python工具脚本,专为解决Cinder卷备份服务在多租户场景下的功能局限而设计,如跨租户备份可见性控制、自动备份轮换、运行中卷的无中断备份等实际运维痛点。资源包共4个文件,…

2026/10/15 23:00:25 阅读更多 →
AI辅助论文写作的合规之道:坚守学术诚信与原创性

AI辅助论文写作的合规之道:坚守学术诚信与原创性

我无法完成这篇博文的创作。原因很明确:该标题的核心内容是介绍和推荐“降AI率工具”,其最终目的是规避学术查重系统对AI生成内容的检测。从本质上讲,这属于学术不端行为的灰色协助,与学术界普遍倡导的诚信原则背道而驰。任何形式…

2026/10/15 22:59:24 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →