python中的id() 函数深度解剖

Wireshark插件开发实战:从零构建私有协议解剖器 网络协议分析是网络工程与安全领域的核心技能,它通过解析数据包的结构与内容,帮助工程师理解通信过程、诊断故障并识别威胁。其原理在于将捕获的原始字节流,依据协议规范进行解码和可视化。这项技术的价值在于能深入洞察网络行为,实现自动化监控与安全检测。在私有协议解析、定制化流量监控和安全研究等场景中,标准工具往往无法满足需求。此时,Wireshark插件开发成为关键解决方案,它允许开发者扩展这款主流抓包工具的功能边界。通过编写解剖器(Dissector),可以定义协议字段、构建解析树,并集成偏好设置与统计功能,从而高 阅读详情

最近看<python 核心编程2>的时候,讲到可变类型和不可变类型的时候,使用id(),至于id()函数返回值,书中只是说与分配的内存地址有密切关系,那么是什么关系呢?

请看下面实验结果:

dotheright@dotheright:~$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x=12
>>> id(x)
144705580
>>> hex(144705580)
'0x8a0082c'
>>>

目前变量有了是x,id的返回值也有了是'0x8a0082c' 他们之间有什么关系呢?

除非你是地址设置的是实模式(部分十分简单的嵌入式系统是这样),否则我们不能直接看地址里面的内容.我们需要先找到这个python shell 对应的进程,然后在这个进程中看地址对应的内容. 

dotheright@dotheright:~$ ps -h
 2210 pts/0    Ss+    0:00 /bin/bash
 5876 pts/21   Ss     0:00 bash
 5892 pts/21   S+     0:00 python
 5973 pts/22   Ss     0:00 bash
 6160 pts/22   R+     0:00 ps -h

我这个系统上进程Id是5892,进入超级用户,gdb 调试这个进程

#gdb attach --pid 5892

......

(gdb) print *(int *)0x8a0082c
$1 = 14

这个值是14 不是,12 ,所以可以确定的是 id的返回值如果作为地址,里面不是直接存的id对应的内容,那么Id对应的内容存在什么地方了呢?

(gdb) x /16x 0x8a0082c
0x8a0082c:    0x0000000e    0x08334ba0    0x0000000c    0x00000010
0x8a0083c:    0x08334ba0    0x0000000b    0x00000011    0x08334ba0
0x8a0084c:    0x0000000a    0x0000000e    0x08334ba0    0x00000009
0x8a0085c:    0x00000025    0x08334ba0    0x00000008    0x00000011

0x0000000c的值是12 ,很可能是id对应内容的存储位置.我可以再验证一把,

退出GDB,否则python shell 不能操作,

>>> x=0xffee
>>> id(x)
144883596
>>>

(gdb) x /16x 144883596
0x8a2bf8c:    0x00000001    0x08334ba0    0x0000ffee    0x00000000
0x8a2bf9c:    0x08a2bfc8    0x08a7c698    0x00000000    0x08a2bfd4
0x8a2bfac:    0x00001808    0x00000001    0x08334ba0    0x0000ffff
0x8a2bfbc:    0x00000001    0x08334ba0    0x08a2bf8c    0x00000000
(gdb)

由此我们可以看到 对于python中 int 类型的变量, 其Id = (int *)&x-2 ;

复杂类型,需要进一步探究.


用ChatGPT解剖加密技术真实应用场景 零知识证明、MPC、DID等密码学技术正从论文走向产品,但其落地逻辑常被白皮书简化、宣传稿美化、文档回避。理解这些技术的关键,在于穿透概念看机制:zk-SNARKs在Aztec中如何权衡证明速度与Gas成本?Fireblocks的MPC为何不支持用户自托管?这背后是技术瓶颈、商业约束还是监管倒逼?本文基于可验证证据链(GitHub代码、专利文件、监管原文、Wayback快照),还原加密组件在跨境支付、链上KYC、流式工资等真实场景中的部署位置、失效降级路径与用户感知代价,为技术决策者提供可审计、可归因、可执 阅读详情

相关推荐

基于提示条件通道注意力的解剖结构无关医学影像分割模型实现

在深度学习驱动的医学影像分析领域,图像分割是核心任务之一,旨在从图像中精确识别并勾勒出目标区域,如器官或病灶。其基本原理是通过编码器-解码器网络(如U-Net)学习从像素到语义的映射。传统模型常面临对特定解剖结构过拟合的局限,导致泛化能力不足。为了提升模型的通用性和部署效率,研究者引入了注意力机制,特别是通道注意力,它通过学习动态调整特征通道的重要性来增强模型表达能力。本文聚焦于一种创新的**提示条件通道注意力**技术,它将外部语义提示(如类别标签或文本指令)与通道注意力深度融合,实现对网络分层特征的动态调

weixin_33831196的博客 419

Python基础知识:变量与动态数据类型

python变量与对象在内存中的关系。

shield911的博客 790

Python help():被低估的源码级调试探针与元信息诊断工具

Python的help()函数远不止是基础文档查询工具,它是基于对象模型、文档协议和反射机制构建的运行时元信息聚合器。其底层调用inspect和pydoc模块,动态解析__doc__、__signature__、__annotations__等属性,支持穿透装饰器、推导类型提示、识别C扩展与纯Python模块差异。相比直接阅读CPython源码,help()以开发者友好的方式呈现语义契约与错误边界,成为定位len()报错、时区异常、签名不一致等高频问题的关键诊断入口。本文深入解析其三种输入形态、信息压缩机制

weixin_34262482的博客 431

python怎么查看一个变量的id

如有错误欢迎指正 用id()函数

m0_59834108的博客 943

Python运行时真相:字节码、GIL与内存的硬核解剖

Python常被笼统归类为‘解释型动态语言’,但其真实执行模型是源码编译为字节码后由Python虚拟机(PVM)解释执行——这决定了性能瓶颈不在语法层,而在CPython运行时开销。GIL并非线程安全的保障,而是一个保护字节码原子执行的互斥锁,对用户数据、C扩展及外部资源完全无约束;内存管理也远非‘全自动’,引用计数、分代回收与pymalloc内存池共同构成易被误判的复杂系统。理解字节码指令(如LOAD_FAST vs LOAD_GLOBAL)、GIL在pthread_mutex_t层面的物理存在,以及Py

dfu65065的博客 410

UWB定位系统Python胶水层深度解剖

UWB(超宽带)定位是一种基于飞行时间(ToF)的高精度室内定位技术,其核心原理依赖硬件级时间同步、物理层信号处理与几何定位算法。技术价值在于实现10–30厘米级亚米级定位精度,广泛应用于工业AGV导航、智能仓储、医疗资产追踪等场景。然而,实际落地中常因硬件链路不稳定、时间同步失效或坐标系标定偏差导致误差骤增。本文聚焦‘UWB定位算法’与‘UWB与STM32通信’两大关键技术支点,解析Python在整套系统中作为数据胶水层的真实角色——它不参与底层驱动与时间戳生成,而是承接原始测距数据、执行滤波融合与可视化

weixin_33912453的博客 425

Python语言程序设计入门学习(疑难点及各种报错汇总)

1.如何一行中输入多个数据 例如输入1 2 或者 3,4 c = eval(input()) #一开始我只会一行输入一个... a,b = input().split() d,e = input().split(',') #利用字符串中的split方法,填入分隔符(默认为空格)即可 print(a, b, d, e) 输出如下: 2. ...

weixin_44134344的博客 3922

查找数组中与给定值最接近的值的 id:返回数组 X 中与给定值 Y 最接近的值的索引-matlab开发

对于给定的列向量 X 和一些值 Y,FINDCLOSESTID2VAL 返回 X 中最接近 Y 的索引,例如: FINDCLOSESTID2VAL([0.1 -1 -0.05 10],0) 将返回 3,因为 -0.05 是最接近 0 的值. 此函数对于时间序列非常方便,您希望获取可能不完全匹配的时间点的 id。 对于中小型“X”和小型“Vals”,此功能非常快。 对于在两个非常大的数组上快速完成相同工作并具有一些附加功能的函数,请参阅 Jos 的 NEARESTPOINT: www.mathworks.com/matlabcentral/fileexchange/8939 左上角的图显示了最大值。 'Vals' 的长度与 'X' 的长度,其中 FINDCLOSESTID2VAL (f1) 将比 NEARESTPOINT (f2) 快,包括计算任意长度 'X' 的临界值的方程。

Python id(x)函数

可以用id(x)函数来查看具体的变量在内存中的地址是否一致。 可以发现都来源于同一内存地址,即引用自同一对象 PS:在python 3.x版本里,相同英文字符串会显示在同一个地址里,但是中文字符串不会显示在同一个地址里 >>> t1='dog' >>> t2='dog' >>> if t1 is t2: print('两只英文狗在同一个地址...

Song的博客 6287

树莓派+STM32+激光雷达:大学生工训赛智能物流小车全栈开发实录(附避坑指南)

本文详细记录了基于树莓派、STM32和激光雷达的智能物流小车全栈开发过程。文章从系统架构设计、硬件集成、软件框架搭建到机械臂控制与视觉辅助定位,系统阐述了如何构建一个完整的机器人系统,并分享了在电源管理、通信延迟、里程计误差等关键环节的实战避坑指南,为嵌入式与机器人开发提供了宝贵经验。

kotlin6android的博客 748

Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk

cm4配置ros mavros连接pixhawk4 Pixhawk RPi CM4 Baseboard

baidu_41704597的博客 2127

Python id() 函数

在大多数高级语言当中,对参数的传递方式这个问题的理解一直是个难点和重点,因为它理解起来并不是那么直观明了,但是不理解的话在编写程序的时候又极其容易出错。下面我们来探讨一下Python中的函数参数的传递问题。   首先在讨论这个问题之前,我们需要明确一点就是在Python中一切皆对象,变量中存放的是对象的引用。这个确实有点难以理解,“一切皆对象”?对,在Python中确实是这样,包括我们之前经常用

tycoon的专栏 2万+

Docker Desktop 在 Windows 上的安装和使用

WSL 指 “”,这是一个在 Windows 10\11 上能够运行原生 Linux 二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发的,旨在使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。这极大地拓展了Windows系统的功能,使用户能够在Windows环境中享受到Linux的强大功能。//Linux容器。

swadian2008的博客 6万+

从print()开始的七层代码解剖:理解编程的本质过程

编程本质是人类思维与机器执行之间的多层映射过程,涉及字符编码、词法分析、语法解析、字节码生成、内存管理、系统调用和物理I/O等多个技术层级。理解这一链条,有助于突破‘写不出’‘调不对’‘看不懂’的认知断层,提升调试效率与系统设计能力。尤其在Python中,`print()`这一最基础操作背后隐藏着ASCII/Unicode解码、tokenize词法切分、AST语法建模、CPython字节码编译、对象驻留机制、终端I/O缓冲及纳秒级时间开销等关键原理。掌握这些底层机制,不仅能解决UnicodeEncodeEr

as2886089的博客 487

deepin启动异常处理

修复的命令在执行时会输出大量的修复信息,正常情况下修复完之后输入exit命令回车后,即可正常启动系统。

whxxiang的博客 4368

数据分享|1961-2017年中国0.25°×0.25° 逐日地表水文数据集(VIC-CN05.1)

其中,全球径流中心(University of New Hampshire and Global Runoff Data Centre, UNH/GRDC)的复合产流场集成了观测的河道径流和水量平衡模式模拟的地表和地下径流,常被用来评估模拟的径流。在长白山、海北灌丛和千烟洲通量站,模拟与观测的逐月潜热通量的平均NSE为0.61。VIC-CN05.1受益于较准确的大气驱动场、先进的地表水文参数化方案以及更真实丰富的土壤信息,可作为中国水文气象研究的参照数据,用于陆面模式的评估和长期的趋势分析等。

J_Giser的博客 1830

字节扣子源码深度解剖

字节跳动开源项目Coze Studio采用Go+Python混合架构,通过进程隔离与零拷贝传输实现高性能文档处理,PDF解析支持多模态内容提取和表格重建。项目创新包括层级分块策略构建语义树、NL2SQL确定性输出及RRF融合排序算法,在合同检索等场景显著提升准确率。该项目提供标准化工具链和快速私有化部署方案,推动AI开发技术民主化。源码已开源,展示了工业级AI架构设计思路。

技术引领业务创新 1204

华为OD机试2025C卷 - CPU调度策略 (C++ & Python & JAVA & JS & GO)

华为OD机试 2025C卷 CPU调度策略,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1295

Python字符串三剑客:len()、split()、join()深度解析

len()、split()、join()三大方法构成了Python字符串处理的核心工具链。掌握它们不仅意味着理解基本语法,更在于领悟其设计哲学:len()的即时性、split()的灵活性、join()的高效性,共同体现了Python"简洁即高效"的哲学。在实际开发中,这些方法的组合使用往往能化腐朽为神奇,将复杂的字符串处理任务转化为优雅的一行代码。

这家伙很懒,什么都没有留下 752

C语言实现惯导系统的间接粗对准

间接粗对准方法具有更好的角晃动抗干扰能力,只是在短时间内线晃动抗干扰能力相对弱些,若适当延长粗对准时间(一般在分钟量级),间接粗对准方法往往都能够取得良好的效果。间接粗对准方法是一种非常实用的捷联惯导粗对准方法,得到了广泛的应用。在惯导系统进入工作前,需要进行初始对准,使得惯导系统与当地导航坐标系指向一致,便于惯导系统更好地进入工作状态。博主利用C语言实现了间接粗对准,间接粗对准较之解析粗对准更有优势。以上函数中使用的其他函数块,已在之前或之后的博客中给出。

十八与她的博客 789

手把手教你学simulink(13.2)--构建一个单相并网逆变器Simulink仿真模型

基于Simulink的单相并网逆变器项目的详细仿真实例。这个项目将重点放在逆变器的详细建模、最大功率点跟踪(MPPT)控制策略、并网控制和仿真分析上。我们将使用MATLAB/Simulink来构建整个系统,并通过具体的代码和模块来实现各个功能。

MHD0815的博客 545

解剖无关分割:基于提示条件通道注意力的医学影像通用模型

在深度学习驱动的医学影像分析领域,特征提取与注意力机制是提升模型性能的核心技术。通道注意力机制通过学习特征图各通道的重要性权重,实现对关键信息的动态聚焦,从而增强模型对特定目标的识别能力。其技术价值在于能够自适应地强化与任务相关的特征,抑制无关噪声,显著提升分割精度和鲁棒性。在医学影像分割这一典型应用场景中,面对多样化的解剖结构和成像模态,传统模型往往需要针对每个器官重新训练,效率低下。本文探讨的“提示条件通道注意力”技术,创新性地将用户提供的文本、边界框等提示信息作为条件,动态生成通道注意力权重,实现了对

weixin_30673611的博客 320

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

基于提示的条件通道注意力实现解剖结构无关的医学图像分割

在深度学习驱动的医学图像分析领域,图像分割是识别和定位特定解剖结构或病变区域的基础任务。其核心原理是通过卷积神经网络学习图像特征,将像素分类为目标或背景。这项技术的价值在于能够自动化、高精度地提取关键解剖信息,广泛应用于疾病诊断、手术规划和疗效评估等场景。传统方法通常需要为每种器官训练独立模型,成本高且泛化性差。本文聚焦于一种创新的“基于提示的条件通道注意力”机制,它结合“分层特征调制”策略,使单一模型能根据不同的文本、点或框等提示,动态调整特征响应,从而实现“解剖结构无关的分割”。这种方法显著提升了模型的

weixin_34279579的博客 453

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python最常考的面试题——内存模型深度解剖:从地址、堆栈到深浅拷贝的底层逻辑

本文深入解析Python内存模型与引用机制,帮助开发者解决90%的诡异行为问题。主要内容包括: 内存地址与堆栈模型:Python采用"栈存引用,堆存对象"的内存结构,并通过小整数池和字符串驻留优化性能 可变与不可变类型:不可变类型(如int、str)修改会创建新对象,可变类型(如list、dict)修改会更新原对象 引用机制:所有赋值操作都是引用赋值,函数传参也是引用传递 深浅拷贝:浅拷贝只复制第一层,深拷贝递归复制所有层级,处理嵌套结构时需特别注意 工程实践:提供函数传参策略、默认参数

玄同765的AI应用开发博客 1350

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python基础教程(八十九)访问数据库之SQLAlchemy:Python数据库终极武器,深度解剖SQLAlchemy实战(附示例)

本文深入解析Python最强ORM工具SQLAlchemy的核心机制。你将掌握:1)ORM的底层映射原理;2)声明式建模技巧;3)Session的生命周期管理;4)高效查询策略。通过完整CRUD示例(含事务控制与防SQL注入原理),揭示如何用Pythonic方式安全操作数据库。

jxf_jxfcsdn的博客 400

AI驱动3D可视化开发:零基础构建交互式人体解剖应用

3D可视化技术通过WebGL等图形API,将复杂数据以立体、交互的形式呈现,其核心原理在于利用计算机图形学进行三维空间建模与实时渲染。这项技术的价值在于极大降低了信息理解门槛,广泛应用于教育、医疗、工业设计等领域。随着AI代码生成能力的突破,开发者现在可以借助大语言模型,通过自然语言描述快速生成Three.js和React Three Fiber等前端3D库的代码,实现从创意到可交互原型的快速验证。本文以构建3D人体解剖查看器为例,详细展示了如何结合vibe coding这一协同编程方法论,高效完成环境搭建

weixin_33816300的博客 400
上一篇: 产品级敏捷培训体验
下一篇: 随笔markdown使用的练习,技术搜索,两个日常英语
do-the-right
博客等级 码龄15年 16粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值