python变量赋值给变量_在Python中将一个变量的值赋给另一个变量时会发生什么?...

在Python中将一个变量的值赋给另一个变量时会发生什么?

这是我学习python的第二天(我知道C ++和一些OOP的基础知识。),我对python中的变量有些轻微的混淆。

以下是我目前的理解方式:

Python变量是对象的引用(或指针?)(它们是可变的或不可变的)。 当我们有类似num = 5的东西时,在内存中的某处创建不可变对象5,并在某个名称空间中创建名称 - 对象引用对num。 当我们有a = num时,没有被复制,但现在两个变量都引用同一个对象,spam被添加到同一个命名空间。

这就是我的书,用Python自动化无聊的东西,让我感到困惑。 因为它是一本新手书,它没有提到对象,命名空间等,它试图解释以下代码:

>>> spam = 42

>>> cheese = spam

>>> spam = 100

>>> spam

100

>>> cheese

42

它提供的解释与C ++书籍完全相同,我不满意,因为我们正在处理对象的引用/指针。 所以在这种情况下,我想在第3行中,由于整数是不可变的,spam被分配了一个全新的指针/引用到内存中的不同位置,即它最初指向的内存未被修改。 因此我们有cheese引用spam所指的初始对象。这是正确的解释吗?

8个解决方案

78 votes

作为C ++开发人员,您可以将Python变量视为指针。

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值