美文网首页
连续赋值

连续赋值

作者: 有机会一起种地OT | 来源:发表于2021-10-20 11:59 被阅读0次

python中是可以使用连续赋值的方式,一次为多个变量进行赋值的,如:

a = b = c = 1
a, b, c = 1, 1, 1

但是有一个问题,比如:

a = 3
a, b = 1, a

按照正常的顺序赋值的逻辑,先进行a = 1,在进行b = a,最后b应该等于1,但是这里b应该等于3。

因为在连续赋值语句中等式右边其实都是局部变量,而不是真正的变量值本身。赋值给b的a,是原来a指向的变量3,而不是重新复制后的a。

如果各变量分开赋值

a = 3
a = 1
b = a

这时b结果为1。

相关文章

  • 连续赋值

    python中是可以使用连续赋值的方式,一次为多个变量进行赋值的,如: 但是有一个问题,比如: 按照正常的顺序赋值...

  • Verilog的各种赋值

    Verilog中的赋值主要有三种,连续赋值、过程赋值以及过程连续赋值。最常见的赋值对象主要是wire型变量和reg...

  • c++

    连续赋值 从右向左

  • javascript 连续赋值的坑

    a.x = a = { n: 2 }; 先获取等号左侧的a.x,但a.x并不存在,于是JS为(堆内存中的)对象创建...

  • python中的常量与变量

    变量 定义变量 删除变量 变量连续赋值 变量交互赋值 常量 不好意思, 没有常量

  • Go语言学习笔记-基本程序结构-变量常量

    变量 var关键字定义变量 赋值可以自动类型推断 在一个赋值语句中可以对多个变量同时进行赋值 常量 快速设置连续值

  • JS连续赋值与求值顺序

    原文来自:https://www.cnblogs.com/morongwendao/p/6473095.html

  • JavaScript连续赋值运算之己见

    文章看自《写了10年Javascript未必全了解的连续赋值运算》,但是讲得不清楚,自己理解如下: 代码: 解释:...

  • 关于连续赋值的问题

    为什么会出现这样的结果呢?不是应该等号右边一路赋值过来的吗,应该是下面这样的逻辑才对啊... 这种结果就是按照正常...

  • oc链式赋值

    偶然发现同事写的代码里面有两个连续的赋值,甚是懵逼,查了下链式赋值要么是oc的链式编程要么是python的链式赋值...

网友评论

      本文标题:连续赋值

      本文链接:https://www.haomeiwen.com/subject/brdtaltx.html