- 每个对象中都保存了三个数据:
  id(标识)
  type(类型)
  value(值)

- 列表就是一个可变对象
  a = [1,2,3]

- a[0] = 10 (改对象)
  - 这个操作是在通过变量去修改对象的值
  - 这种操作不会改变变量所指向的对象
  - 当我们去修改对象时,如果有其他变量也指向了该对象,则修改也会在其他的变量

# # 可变对象
a = [1,2,3]
print('修改前:', a , id(a)) # # 通过索引修改列表 改变值
a[0] = 10
print('修改后:', a , id(a)) # # 为变量重新赋值 改变id和值
a = [4,5,6]
print('修改后:', a , id(a)) print('\n\n') a = [1,2,3]
b = a
b[0] = 10
b = [10,2,3]
print("a",a,id(a))
print("b",b,id(b)) print('\n\n') # == != is is not
# == != 比较的是对象的值是否相等
# is is not 比较的是对象的id是否相等(比较两个对象是否是同一个对象) a = [1,2,3]
b = [1,2,3]
print(a,b)
print(id(a),id(b)) print('\n\n') print(a == b) # a和b的值相等,使用==会返回True
print(a is b) # a和b不是同一个对象,内存地址不同,使用is会返回False

python可变对象的更多相关文章

  1. python,可变对象,不可变对象,深拷贝,浅拷贝。

    学习整理,若有问题,欢迎指正. python 可变对象,不可变对象 可变对象 该对象所指定的内存地址上面的值可以被改变,变量被改变后,其所指向的内存地址上面的值,直接被改变,没有发生复制行为,也没有发 ...

  2. Python 可变对象和不可变对象

    具体可以看这里:http://thomaschen2011.iteye.com/blog/1441254 不可变对象:int,string,float,tuple 可变对象   :list,dicti ...

  3. python可变对象与不可变对象的差别

    一.可变对象和不可对象 Python在heap中分配的对象分成两类:可变对象和不可对象.所谓可变对象是指,对象的内容可变,而不可变对象是指内容不可变.   不可变对象:int.string.float ...

  4. Python入门之python可变对象与不可变对象

    本文分为如下几个部分 概念 地址问题 作为函数参数 可变参数在类中使用 函数默认参数 类的实现上的差异 概念 可变对象与不可变对象的区别在于对象本身是否可变. python内置的一些类型中 可变对象: ...

  5. python可变对象与不可变对象

    可变/不可变对象定义 不可变对象 该对象所指向的内存中的值不能被改变.当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址. 可 ...

  6. Python可变对象和不可变对象

    Python中一切皆对象,每个对象都有其唯一的id,对应的类型和值,其中id指的是对象在内存中的位置.根据对象的值是否可修改分为可变对象和不可变对象.其中, 不可对象包括:数字,字符串,tuple 可 ...

  7. python可变对象和不可变对象的解释

    数据类型分为可变.不可变.可变对象表示可以原处修改该数据对象,不可变对象表示必须创建新对象来保存修改后的数据. 在基础数据类型中: 数值.字符串.元组.frozenset是不可变对象 列表.set.d ...

  8. Python 可变对象与不可变对象

    1. 不可变(immutable):int.字符串(string).float.(数值型number).元组(tuple) 可变(mutable):字典型(dictionary).列表型(list) ...

  9. Python的可变对象与不可变对象。

    参考:http://thomaschen2011.iteye.com/blog/1441254          Python基础:Python可变对象和不可变对象 http://blog.jobbo ...

随机推荐

  1. Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow pip命令

    引言: Tensorflow大名鼎鼎,这里不再赘述其为何物.这里讲描述在安装python包的时候碰到的“No matching distribution found for tensorflow”,其 ...

  2. python编程之操作系统基础

    操作系统发展史: 最早的计算机没有操作系统的概念:是使用打孔机和打孔卡片来进行计算的.只能一个一个处理. 后来产生了批处理系统,可以批量处理,进而加快计算的速度. 批处理系统:串行 数据处理速度加快 ...

  3. Python--day61--Django的ORM

    下载驱动

  4. Java动态编译优化——提升编译速度(N倍)

    一.前言 最近一直在研究Java8 的动态编译, 并且也被ZipFileIndex$Entry 内存泄漏所困扰,在无意中,看到一个第三方插件的动态编译.并且编译速度是原来的2-3倍.原本打算直接用这个 ...

  5. jquery ajax请求步骤

    $.ajax({ type: "GET", url: "/alink-hq/checkCode", data: { "mobile": ph ...

  6. CSS选择器权重计算规则

    从CSS代码存放位置看权重优先级:内嵌样式 > 内部样式表 > 外联样式表.其实这个基本可以忽视之,大部分情况下CSS代码都是使用外联样式表. 从样式选择器看权重优先级:important ...

  7. 关于opencv中cv::Mat设置roi

    opencv中设置roi实验: cv::Mat SrcImg; SrcImg = cv::imread("../resource/cpw3.png"); cv::imshow(&q ...

  8. 个人脚手架搭建 -- charmingsong-cli

    个人脚手架搭建 -- charmingsong-cli 目的 为了解决多次构建相同功能的项目,在一定程度上需要定制化以及私有化设置 设计 问题 为什么不用现成的脚手架生成? 如果利用vue或者reac ...

  9. MFC下获取系统内存和当前进程的内存使用情况

    GlobalMemoryStatusEx来获取系统的内存使用情况 GetProcessMemoryInfo获取某个进程的内存使用情况.和任务管理器看到的是一样的. 具体代码如下: void GetSy ...

  10. 如何更优雅地对接第三方API

    本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/third 我们在日常开发过程 ...