专栏首页PythonistaPython中的变量引用对象需注意的几点

Python中的变量引用对象需注意的几点

Python中的变量引用对象需注意的几点

分类:Python

 (55)  (0)

普通引用:

        Python中,变量的作用仅仅是一个标识,只有赋值后才被创建,它可以引用任何类型的对象,而且在引用之前必须赋值。赋值后的变量指向响应的对象,拥有该对象的空间。类型属于对象,但是不是变量。

[python] view plain copy

  1. a = 3  
  2. a = "science"  

        上述代码说明数值3和字符串“science”分别是两种对象,初始变量a赋值对象3被创建,变量a指向对象3的内存空间,之后变量a又指向了字符串的内存空间。

共享引用:

[python] view plain copy

  1. a = 3  
  2. b = a  

        上述代码说明变量a,b同时引用了对象3,两个变量引用了相同的对象。正是因为两者都是指向了相同的对象,所以当其中一个变量引用其他对象的时候,不会对另一个变量造成影响。例如:

[python] view plain copy

  1. a = “science”  

         在上面代码的基础上,变量a引用了字符串对象“science”,此时变量b依旧引用对象3,而不是“science”。

         但是有些对象的操作会在原处修改,例如列表。例如:

[python] view plain copy

  1. a = [1,2,3]  
  2. b = a  

        变量a,b应用了包含1,2,3对象的列表,自然而然的a[0]引用对象1,如果在变量a中执行操作

[python] view plain copy

  1. a[0] = 4  

那么变量b就变随之变为[4,2,3]。避免这种情况可以使用copy操作,替换引用操作。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 牛掰的python与unix

      加载subprocess模块仅仅是将可以使用的代码文件加载进来。也可以创建自己的模块或文件,拱以后重复使用,这与加载subprocess模块的方法相同。IP...

    超蛋lhy
  • Golang之(if)流程控制

    超蛋lhy
  • MacOs执行SQL出错(mysql)

    超蛋lhy
  • iOS的内存管理

    王大锤
  • python之变量

    py3study
  • Java进阶10 内存管理与垃圾回收

    整个教程中已经不时的出现一些内存管理和垃圾回收的相关知识。这里进行一个小小的总结。 Java是在JVM所虚拟出的内存环境中运行的。内存分为栈(stack)和堆(...

    Vamei
  • 手拉手,用Vue开发动态刷新Echarts组件

    司想君
  • Vue 进阶必学之高阶组件 HOC(保姆式教学,冲击20k必备)

    高阶组件这个概念在 React 中一度非常流行,但是在 Vue 的社区里讨论的不多,本篇文章就真正的带你来玩一个进阶的骚操作。

    ssh1995
  • 作为架构师,你必需要搞清楚的概念:POJO、PO、DTO、DAO、BO、VO

    POJO、PO、DTO、DAO、BO、VO这些概念作为Java开发来说应该全部或者部分遇到过,作为架构师的你想必更是清楚这些概念在不同场景的应用。 下面我逐一介...

    Java技术栈
  • Ambarella展示了新的机器人平台和AWS人工智能编程协议

    Ambarella公司总部位于加州圣克拉拉,以芯片闻名。近日,它宣布了一个新的机器人平台,该平台基于其用于人工智能处理的CVflow架构。此外,它还与亚马逊网络...

    AiTechYun

扫码关注云+社区

领取腾讯云代金券