zoukankan      html  css  js  c++  java
  • 抽象理解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之后的变化情况:
     
     
     
  • 相关阅读:
    UOJ299 游戏
    SPOJ-DivCnt2 Counting Divisors (square)
    Gym102331B Bitwise Xor
    POJ3495 Bitwise XOR of Arithmetic Progression
    LG5325 【模板】Min_25筛
    LOJ6229 这是一道简单的数学题
    BZOJ3601 一个人的数论
    LOJ138 类欧几里得算法
    Atcoder TypicalDPContest N~T
    莫队基础题
  • 原文地址:https://www.cnblogs.com/axing-articles/p/11412030.html
Copyright © 2011-2022 走看看