python 中的可变与不可变变量

  • 在python 中,字符串,元组,数字不可变;而列表,字典可变

  • 接下来看3段代码:

 a = 100
 def test1(num):
     num += num
     print(num)

 test1(a)
 print(a)

执行结果为:

200
100

变量为数字的时候不可变的,在test1函数中发现num 不可修改,就在函数内部创建一个局部变量num ,不会修改全局变量 a ,所以num = 200, a = 100

 a = [100]
 def test2(num):
     num += num
     print(num)

 test1(a)
 print(a)

执行结果为:

[100, 100]
[100, 100]

在test2中,列表是可变的.a和num都指向同一个地址,在num 更改后,这块的内容也会更改,所以a也会改变

a = [100]
 def test3(num):
     num = num + num
     print(num)

 test1(a)
 print(a)

执行结果为:

[100, 100]
[100]

在test3 中,num = num + num 中有'=',而'+='是复合运算符,num本来和a指向同一块地址,在num + num 后,num -> [100, 100],而a -> [100]

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 8,791评论 0 6
  • 最全的iOS面试题及答案 iOS面试小贴士 ———————————————回答好下面的足够了-----------...
    大罗Rnthking阅读 4,578评论 0 2
  • 当梅子和桅杆乱搞的谣言满天飞舞时,我还是斜靠在凉椅上,波澜不惊。在农村,三两个婆娘,扯一堆家长里短,都会引来一场锣...
    篱笆影阅读 2,118评论 0 2
  • 密密麻麻的高楼大厦, 找不到我的家。 在人来人往的拥挤街道, 浪迹天涯。 我身上背着重重的壳努力往上爬, 却永永远...
    贾小呆520阅读 4,229评论 0 0
  • 一直在下雨的北京,穿了一件毛衣还是有些阴冷。昨天才返校,今天却觉得已经过了很久的样子。晚自习,看着民法总论的笔记,...
    Skirtz阅读 1,531评论 3 2

友情链接更多精彩内容