ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Python之变量的创建过程

Python之变量的创建过程 关于变量的创建过程第一部分, 也就是需要讲述变量的具体创建过程。首先, 要是在内存里面发生了一件这么件事情的时候, 我们就会去定义出来一个叫做变量name等于Kwan的事情。程序先开辟一块儿内存空间, 把Kwan这个值存进去, 然后让变量名name指向Kwan所在的那个内存地址,如下图所示:我们可以通过调用id()这个方法, 来查看这个变量在内存里面具体存放的地址是多少。name Kwanprint(id(name))二、对于变量的修改这一行为。我们在一般情况下认为, 修改一个变量的含义是用一个新值把旧有数值进行覆盖式操作, 但是在实际的程序实现层面而言, 真的是按照我们所理解的那样简单的方式来进行运行的吗。name Kwanprint(id(name))name Kobeprint(id(name))实际的原理到底是怎样的一回事, 首先程序会先申请下一块用来存储字符‘Kwan’的内存空间, 接着让name这个变量名去指向这块刚申请好的内存, 然后继续向下执行代码, 等到执行到 name Kobe 这一步的时候, 又会再去申请另一块单独用来存储字符‘Kobe’的内存空间, 与此同时让原来指向那个存储‘Kwan’的内存的连接给断开掉, 最后再让name这个变量名重新转向去指向那块刚刚用来存储‘Kobe’的新内存。三、变量的指向关系提问部分: 请解释一下, 下面这段代码为什么会呈现出当前的这种情况呢?name1 Kwanname2 name1print(name1, name2)name1 Kobeprint(name1, name2)要了解刚才提到的那些问题之所以会呈现出那样的结果, 你首先需要去搞清楚在计算机的内存里面, 那两个变量具体都是怎么进行存储的。从上面的示意图里可以看出来, 在执行 name2 name1 这个操作的时候, 实际上就是让 name2 指向了 Kwan 那个内存地址。对name1进行修改值的操作, 其含义就相当于把原本连接在name1和Kwan之间的那个联系给切断了, 接着再去新建出一个从name1指向Kobe的连接线路。在整个变化的过程里头, 从来没有动过任何跟name2有关的关联要素, 所以nam2依旧保持着是Kwan的这个状态不变, 与此同时, name1这个变量就转变成了Kobe这样的一种情况了。
返回列表