学习
实践
活动
专区
工具
TVP
写文章

Python每日一题:变量交换

题目:Python 中交换两个变量的值是怎么实现的?为什么可以这样实现?

答案要点:

第一个问题,在 Python 中交换两个变量的值,只需要简单一个句话即可:

重点在于为什么可以这样交换。在 《流畅的Python》一书第8章中对这个问题做了详细的解释,它解释的关键点在于:变量是标注,而不是盒子。怎么区分标注和盒子呢?如果是标注,那么一个值可以有多个标注,这些标注都代表了同一个值,修改一个会影响另外一个。而如果是盒子,代表的是独立的个体,相互之间是不受影响的。这有点类似我们在 JAVA 里说的引用对象。

正因为变量是标识,所以当我们在 Python 中定义 a = 10 的时候,实际上会开辟两块内存,一个用来存放 10,一个用来存放变量 a ,而存放变量 a 的地址所对应的值就是 10 这个地址的地址值。和 JAVA 中的引用对象是类似的。所以当我们执行 a,b = b,a 时,其实是在交互 a 和 b 的地址值

还有一个比较关键的,假设有一个类 People() ,对于 p = People() 正确的描述应该是把变量分配给对象,反过来说 有问题的,因为执行顺序是先执行 People() 再进行的赋值。示例如下:

愿关注我们的人都能找到

属于自己的皮球

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180318G1C9I700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券