python中如果获取对象的内存地址,及字典的地址
在python中,如果查看一个对象的内存地址,可以用到id这个内置函数;使用方式是: id(object)--->返回该对象的10进制的内存地址;
以下是官方定义;翻译为大白话就是,返回一个对象的身份标识;在Cptyhon中用的是对象的内存地址;
def id(*args, **kwargs): # real signature unknown
"""
Return the identity of an object. This is guaranteed to be unique among simultaneously existing objects.
(CPython uses the object's memory address.)def id(*args, **kwargs): # real signature unknown
"""
Return the identity of an object. This is guaranteed to be unique among simultaneously existing objects.
(CPython uses the object's memory address.)
"""
下面我们可以通过具体的例子来加深理解:
d1={'a':1,'b':2}
d2=d1
# 定义一个新字典 内容和d1一致
d3=d1.copy()
print('原始的字典d1的内存地址是 {}'.format(id(d1)))
print('通过等号赋值d2的内存地址是{}'.format(id(d2)))
print('通过copy方法d3的内存地址是{}'.format(id(d3)))
输出的结果是:
------------------------------------------------------
原始的字典d1的内存地址是 2381556574152
通过等号赋值d2的内存地址是2381556574152
通过copy方法d3的内存地址是2381556574552
----------------------------------------------------------------
一定得注意,通过copy方法复制的字典,是新的字典,内存地址是不一样的;通过=赋值的,是同一个字典,内存地址是一样的;
python中如果获取对象的内存地址,及字典的地址的更多相关文章
- python中的函数对象的内存地址是多少
今天和同学讨论一个问题,发现了函数的内存地址和我想象的不一样. 我以为同一个函数,假如给的参数不一样,那么这两个函数的id就不一样. 然后经过实验,发现python为了便于管理函数,所有的函数都放在同 ...
- 《python解释器源码剖析》第4章--python中的list对象
4.0 序 python中的list对象,底层对应的则是PyListObject.如果你熟悉C++,那么会很容易和C++中的list联系起来.但实际上,这个C++中的list大相径庭,反而和STL中的 ...
- 《python解释器源码剖析》第2章--python中的int对象
2.0 序 在所有的python内建对象中,整数对象是最简单的对象.从对python对象机制的剖析来看,整数对象是一个非常好的切入点.那么下面就开始剖析整数对象的实现机制 2.1 初识PyLongOb ...
- Python中的可变对象和不可变对象
Python中的可变对象和不可变对象 什么是可变/不可变对象 不可变对象,该对象所指向的内存中的值不能被改变.当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一 ...
- 【Python核心编程笔记】一、Python中一切皆对象
Python中一切皆对象 本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object.type和class之间的关系,以此来引出在python如何做 ...
- Python中如何获取类属性的列表
这篇文章主要给大家介绍了在Python中如何获取类属性的列表,文中通过示例代码介绍的很详细,相信对大家的学习或者工作具有一定的参考借鉴价值,有需要的朋友可以参考借鉴,下面来一起看看吧. 前言 最近工作 ...
- python 中变量和对象
1. 在 python 中,类型属于对象,变量是没有类型的:a=[1,2,3] a="Runoob"以上代码中,[1,2,3] 是 List 类型,"Runoob&quo ...
- python中一切皆对象的理解
一切皆对象? 学过Java都知道,Java中有8个基本类型,其余的都是继承自Object类的引用类型.方法内的基本类型变量会在栈上分配,而引用类型会通过逃逸分析来决定在栈上分配或堆上分配.Java中关 ...
- Python中的函数对象与闭包
函数在Python中是第一类对象,可以当做参数传递给其他函数,放在数据结构中,以及作为函数的返回结果. 下面的例子为接受另外一个函数作为输入并调用它 #foo.py def callf(func): ...
- javascript中如何获取对象名
javascript中如何获取对象名 一.总结 一句话总结:将对象传入参数,看参数是否为函数(js中的对象和函数是一个意思么(函数肯定是对象)),对象参数.name属性即可获得 //版本4 funct ...
随机推荐
- TreeMap排序Comparator()重写
package map_;import java.util.Comparator;import java.util.TreeMap;/* * @author YAM */public class Tr ...
- CF796C Bank Hacking
题目传送门 思路 放眼整个题解区没有我这种解法,因此来写一篇题解. 既然要求我们选择一个节点作为根,那么我们就枚举根. 接下来的问题就是如何 \(\mathcal{O}(1)\) 或 \(\mathc ...
- day07-MyBatis的关联映射01
MyBatis的关联映射 Mybatis的关联映射 实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系.针对多表之间的操作,MyBatis提供了关联映射, ...
- unity resMgr
yooAsset GitHub - tuyoogame/YooAsset: unity3d resources management system xAsset GitHub - xasset/xas ...
- CRM管理系统界面
- Eureka服务治理
Eureka是由Netflix开发的一款服务治理开源框架,Spring-cloud对其进行了集成.Eureka既包含了服务端也包含了客户端,Eureka服务端是一个服务注册中心(Eureka Serv ...
- 2.3 在DispatcherServlet的构造方法中解析applicationContext.xml配置文件
package com.hy.servlet; import java.io.IOException; import java.io.InputStream; import java.util.Map ...
- VUE学习-:class & :style
:class & :style :class 键值对 <div id="app" v-bind:class="{ 'active': isActive }& ...
- python 日志分割器 大文本处理
import math i=0 filename='' write='' Rline = '' def writeFile(fileName,line): global filename global ...
- WPF ItemsControl Command 绑定操作
视图模型: using System.Collections.ObjectModel; using System.Diagnostics; using System.Windows.Input; us ...