• 抽象理解python中变量的定义过程


      关键词:变量的定义、变量的删除
      前言
        在python中,变量名真的只是一个名字而已,它维护的是一个地址,当这个地址变了,那么此时这个变量的指向也就变了,此时这个变量的值也就变了。这个变量可以指向一个整型变量,当然它也可以指向一个函数,当然它也可以指向其他的对象。
        python中"一切"皆对象,"一切"皆引用。(加上引号是为了防止出现万一的情况)

    1、变量的定义:

    当在python中执行如下赋值语句的时候:

    a = "laoliang"  # "laoliang"是一个字符串对象

    这个语句在python中一旦执行:

    ①那么首先申请一个内存空间存放"laoliang"(如果" laoliang"不存在于内存的话);

    ②同时也为变量名a分配一个内存空间(如果a不存在于内存的话);

    ③接着让a指向"laoliang"所在的内存空间,此时a中保存的是一个地址,即"laoliang"所在内存空间的地址。

     

     这就是python中变量的定义。

    2、变量的删除:

    del a

    分析:

      在执行上述语句删除变量的时候,其实只是删除了一个引用而已。如果变量desc所指向的对象的引用计数不为0,那么此时该对象仍然不会被删除,此时只是变量的引用被删除了而已。

    3、特殊情况分析:

    当在python中执行如下赋值语句的时候:

    a = "laoliang"
    b = "laowang"
    a, b = b, a
    (1)对于语句1和语句2,参考上一小节所分析的;
    (2)对于语句3:
    ①这个语句在python中一旦执行,那么首先分析等号右边的内容,查找右边的b和a的值。通过查找可得a = "laoliang", b = "laowang";
    ②等号右边的内容都找到之后,再分析左边的。此时会让a,b分别指向对应位置的新的值,即让a = b = "laowang", b = a = "laoliang"
     
    执行语句3之后的变化情况:
     
     
     
  • 相关阅读:
    Sublime Text shift+ctrl妙用(转载)
    编写一致的符合习惯的javascript
    Vue 部署单页应用,刷新页面 404/502 报错
    http 缓存策略浅析
    Vue 项目优化,持续更新...
    web安全之——XSS、CSRF
    javascript 易错知识点合集
    深入理解 js this 绑定机制
    javascript 模块依赖管理的本质
    VUE 项目刷新路由指向index.html
  • 原文地址:https://www.cnblogs.com/axing-articles/p/11412030.html
Copyright © 2020-2023  润新知