iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python变量赋值机制实例分析
  • 621
分享到

python变量赋值机制实例分析

2023-06-29 06:06:51 621人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇“python变量赋值机制实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python变量赋值机制实例分析”文章吧

这篇“python变量赋值机制实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python变量赋值机制实例分析”文章吧。

先说结论:

变量赋值属于浅拷贝(关于深拷贝和浅拷贝的区别可以自己了解下)。故如果是可变类型变量(如a是list类型,a=b)赋值,修改a会牵连到b;如果是不可变类型(如int)的赋值,则修改任意变量不会传递。

1. 可变类型赋值

python变量赋值机制实例分析

可以看出,对于可变类型赋值,变量始终指向同一块地址。

2. 不可变类型赋值

python变量赋值机制实例分析

对于不可变类型变量的赋值,刚开始是指向同一块地址,但修改任意变量,则修改的变量指向另外一块地址,不会影响另外一个变量。

那么问题来了,对于自定义的类型进行变量赋值,属于哪一种呢?

3. 自定义类型变量赋值

python变量赋值机制实例分析

 可以看出,对自定义变量中的属性进行修改也会传递。

但是,如果对整体变量重新赋值呢?

python变量赋值机制实例分析

可以看出,如果对整体变量重新赋值,修改不会传递,修改的变量会指向新的地址。

对于自定义变量赋值的区别,不留意很容易踩坑,如下面函数,将列表转化为链表:

python变量赋值机制实例分析

创建head结点的副本cur,对其进行赋值,赋值后再让它指向下一个节点,最终返回头结点,但结果出人意料。仔细分析发现,在for循环中重新对cur赋值,cur = node(i),使得cur不再指向head节点,而是指向另一块内存地址,此时headcur分路扬镳,再也没有关系了。

正确的做法是:

python变量赋值机制实例分析

在for循环内,不对cur本身进行更改,只对其属性next进行更改,这样cur和head始终指向同一块地址,最终return head.next(因为第一个node没数据,真正的node从head.next开始) 

以上就是关于“python变量赋值机制实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

--结束END--

本文标题: python变量赋值机制实例分析

本文链接: https://www.lsjlt.com/news/323042.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python变量赋值机制实例分析
    这篇“python变量赋值机制实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python变量赋值机制实例分析”文章吧...
    99+
    2023-06-29
  • python变量赋值机制踩坑记录
    目录1.可变类型赋值2.不可变类型赋值3.自定义类型变量赋值先说结论: 变量赋值属于浅拷贝(关于深拷贝和浅拷贝的区别可以自己了解下)。故如果是可变类型变量(如a是list类型,a=b...
    99+
    2024-04-02
  • ES6中变量解构赋值的示例分析
    这篇文章主要介绍了ES6中变量解构赋值的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。变量的解构赋值数组的解构const ...
    99+
    2024-04-02
  • ECMAScript6变量中解构赋值的示例分析
    这篇文章主要介绍了ECMAScript6变量中解构赋值的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。数组的解构赋值ES6允许按照一...
    99+
    2024-04-02
  • ES6变量赋值和基本数据类型实例分析
    本篇内容介绍了“ES6变量赋值和基本数据类型实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!let和constlet和const不存在...
    99+
    2023-07-02
  • JavaScript引用赋值与传值赋值实例分析
    这篇文章主要介绍“JavaScript引用赋值与传值赋值实例分析”,在日常操作中,相信很多人在JavaScript引用赋值与传值赋值实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript引...
    99+
    2023-06-30
  • Python中的变量赋值
    目录1变量、对象、引用2对象的垃圾回收机制3变量所指向的对象不同会有何不同?引言: Python中的变量在使用中很流畅,可以不关注类型,任意赋值,对于开发来说效率得到了提升,但若不了...
    99+
    2024-04-02
  • 2.13 Python 赋值机制
    先看一个例子: In [1]: x = [1, 2, 3] y = x x[1] = 100 print y [1, 100, 3] 改变变量x的值,变量y的值也随着改变,这与Python内部的赋值机制有关。 简单类型 先...
    99+
    2023-01-31
    赋值 机制 Python
  • python类变量和实例变量的实例对比分析
    本篇内容主要讲解“python类变量和实例变量的实例对比分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python类变量和实例变量的实例对比分析”吧!区别类变量是所有对象共有的,其中一个对象...
    99+
    2023-06-30
  • Python解压可迭代对象赋值给多个变量的示例分析
    今天就跟大家聊聊有关Python解压可迭代对象赋值给多个变量的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。问题描述现在有一个包含N个元素的可迭代对象,怎样把它里面的元素解压...
    99+
    2023-06-21
  • python如何给变量赋值
    python可以通过基本的变量赋值、多重赋值、增量赋值、复合赋值运算符和全局变量和局部变量赋值。详细介绍:1、基本的变量赋值步骤是将数字赋给变量,将字符串赋给变量,将布尔值赋给变量,将列表赋给变量;2、多重赋值步骤是交换变量值,从函数返回多...
    99+
    2023-12-13
    python
  • 图解Python变量与赋值
    Python是一门独特的语言,与C语言有很大区别,初学Python很多萌新表示对变量与赋值不理解,学过C的都知道,给变量赋值时,需要先指定数据类型,同时会开辟一块内存区域,用于存储值,例如:int a = 1;a 就是内存空间中的一小块区域...
    99+
    2023-01-31
    赋值 变量 Python
  • Go struct实例化和赋值实例分析
    这篇文章主要介绍“Go struct实例化和赋值实例分析”,在日常操作中,相信很多人在Go struct实例化和赋值实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go struct实例化和赋值实例分析...
    99+
    2023-06-25
  • python变量和变量赋值的几种形式
    动态类型的语言 python是动态类型的语言,不需要声明变量的类型。 实际上,python中的变量仅仅只是用来保存一个数据对象的地址。无论是什么数据对象,在内存中创建好数据对象之后,都只是把它的地址保存到变量名中。所以变量名是类型无关的...
    99+
    2023-01-30
    变量 赋值 几种
  • R语言变量赋值的示例
    小编给大家分享一下R语言变量赋值的示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!变量可以使用向左,向右且等于操作符来分配值。可以使用 print() 或 cat() 函数打印变量的值。cat() 函数将多个项目并成连续...
    99+
    2023-06-14
  • JavaScript变量实例分析
    本篇内容主要讲解“JavaScript变量实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript变量实例分析”吧!   &nbs...
    99+
    2024-04-02
  • Python中的变量怎么赋值
    这篇文章主要讲解了“Python中的变量怎么赋值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中的变量怎么赋值”吧!1 Python变量概述变量,英文叫做 variable。在《...
    99+
    2023-06-22
  • linux怎么给变量随机赋值
    在Linux中,可以使用shell脚本来给变量随机赋值。可以使用`$RANDOM`变量来生成一个随机数,并将其赋值给需要的变量。以下...
    99+
    2023-08-23
    linux
  • Python变量类型使用实例分析
    今天小编给大家分享一下Python变量类型使用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言:变量存储在内存中的...
    99+
    2023-06-29
  • python的自变量选择实例分析
    这篇文章主要介绍“python的自变量选择实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python的自变量选择实例分析”文章能帮助大家解决问题。1、为什么需要自变量选择?一个好的回归模型,...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作