当Python变量遇到对象:你可能从未真正认识过它们

        很多Python初学者以为学会了a = 10就掌握了变量,直到他们遇到这样的代码:

def magic(lst=[]):
    lst.append("🔮")
    return lst

print(magic())  # ["🔮"]
print(magic())  # ["🔮", "🔮"]

        这个看似简单的函数,暴露了Python最核心的秘密——对象与变量的微妙关系。今天我们不谈基础语法,带你直击Python最易被误解的三个真相。

一、变量不是盒子,而是便利贴

        传统编程教学中,总把变量比作"存储数据的盒子"。但在Python中,这个比喻是彻头彻尾的谎言。

a = [1,2]
b = a
a.append(3)
print(b)  # [1,2,3]

        真正的Python变量工作机制:

  1. 每个对象(如列表)独立存在于内存中

  2. 变量只是贴在对象上的便利贴

  3. 赋值=不是复制对象,而是贴新标签

        当我们执行a = b时,不是把b盒子里的东西倒给a,而是给b指向的物体再贴一个叫a的便利贴。

二、可变对象是定时炸弹

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值