Python 变量的创建过程详解
作者:Kwan、C 发布时间:2022-04-20 03:01:17
标签:python,变量,创建,过程
一、变量创建过程
首先,当我们定义了一个变量name = 'Kwan'的时候,在内存中其实是做了这样一件事:
程序开辟了一块内存空间,将'Kwan'存储进去,再让变量名name指向'Kwan'所在的内存地址。如下图所示:
我们可以通过id()方法查看这个变量在内存中的地址。
name = 'Kwan'
print(id(name))
二、变量的修改
一般我们认为修改一个变量就是用新值把就旧值覆盖掉,可Python真是这么实现的么?
name = 'Kwan'
print(id(name))
name = 'Kobe'
print(id(name))
实际的原理是什么样的呢?程序先申请了一块内存空间来存储'Kwan',让name变量名指向这块内存空间,往下执行name = 'Kobe'之后,又申请了另一块内存空间来存储'Kobe',并让原本指向'Kwan'内存的链接断开,让name再指向'Kobe'。
三、变量的指向关系
问:下面这段代码为何出现这样的现象?
name1 = 'Kwan'
name2 = name1
print(name1, name2)
name1 = 'Kobe'
print(name1, name2)
要想知道上面问题的结果是为什么,首先要了解再内存中两个变量的存储情况。
从上面的示意图中我们可以知道,当执行name2 = name1时,事实上时让name2指向了'Kwan'所在的内存地址。
修改name1的值,相当于断开了name1到'Kwan'的链接,重新建立name1和'Kobe'之间的链接。在这个过程中,始终没有影响到name2和'Kwan'之间的关系,因此name2还是'Kwan',而name1变成了'Kobe'。
来源:https://www.cnblogs.com/Kwan-C/p/11444595.html


猜你喜欢
- 话不多说,小工具需求如下: 功能需求 -- 电脑开机后自动执行时间同步 非功能需求 -- 安装执行简单,无需安装额外环境一、代码实现基于以上
- 废话不多说,我就直接上代码让大家看看吧!#!/usr/bin/env python# -*- coding: utf-8 -*-# @Fil
- 1.在浏览器上搜索PyCharmhttps://www.jetbrains.com/pycharm/download/#section=wi
- 在这个周末刚刚写出来的python桌面应用--网络聊天室,主要通过pyqt5作为桌面应用框架,socket作为网络编程的框架,从而实现包括客
- 效果图:图(1)初始图图(2)点击“从右侧划出”代码如下:<!DOCTYPE html><html> <hea
- floor()方法返回不大于x的最大整数(向下取整)。语法以下是floor()方法的语法:import mathmath.flo
- 前言虽然现在文件上传下载工具多如牛毛,比如http、ftp、sftp、scp等方案都可以用于文件传输,但都是需要安装服务器甚至客户端。有一种
- 1. 文件注释File -> settings -> Editor -> File and Code Templates
- 1 中国结的组成部分中国结是一种手工编织工艺品,它身上所显示的情致与智慧正是汉族古老文明中的一个侧面。因为其外观对称精致,可以代表汉族悠久的
- 合并numpy中numpy中可以通过concatenate,指定参数axis=0 或者 axis=1,在纵轴和横轴上合并两个数组。impor
- 导语:谷歌浏览器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个“小恐龙游戏”。🦖相信很多人都玩过 chrome 上提供的恐龙跑跑游戏,
- 一 时间元组1. 时间元组和时间戳的互化import time,datetime# 获取当前时间的时间元组t = time.localtim
- 前言在实际生产环境中,如果对mysql数据库的读和写都在一台数据库服务器中操作,无论是在安全性、高可用性,还是高并发等各个方面都是不能满足实
- jQuery.post( url, [data], [callback], [type]
- 1.从官网下载mysql-5.7.21-windowx64.zip mysql下载页面2.解压到合适的位置(E:\mysql) 这名字是我改
- 一、项目工程目录:二、具体工程文件代码:1、新建一个包名:common(用于存放基本函数封装)(1)在common包下新建一个base.py
- 用法示例:import random# 1)随机小数print(random.random()) # 获取大于0且小于1 之间的小数 &nb
- 一、乱码问题描述经常在爬虫或者一些操作的时候,经常会出现中文乱码等问题,如下原因是源网页编码和爬取下来后的编码格式不一致 二、利用
- 最近在学着用easyui,发现框架用起来果然是方便简洁,能弄出这框架的都是大神级别了吧,牛啊....今天碰到这个应用可以说是让我非常之无语,
- 简介模拟登录淘宝已经不是一件新鲜的事情了,过去我曾经使用get/post方式进行爬虫,同时也加入IP代理池进行跳过检验,但随着大型网站的升级