zoukankan      html  css  js  c++  java
  • Python可变类型和不可变类型

     1 #不可变数据类型
     2 int_1 = 1
     3 print(id(int_1))
     4 #OUT:140735497665600
     5 int_1 = 2
     6 print(id(int_1))
     7 #OUT:140735497665632
     8 #id()返回int_1的唯一标识符,等同于int_1的内存地址
     9 #int_1=2并不是在原来的内存地址修改值,而是在另一个内存地址存储“2”,因此变量int_1的内存地址发生了改变
    10 #旧内存区域如果未被其他变量指向,那么会被废弃,并由python自动回收内存空间
    11 
    12 #可变数据类型
    13 list_1 = [1, 2, 3]
    14 print(id(list_1))
    15 #OUT:3234925597192
    16 list_1.append(4)#list_1添加元素4
    17 print(id(list_1))
    18 #OUT:3234925597192
    19 #list_1发生改变,但list_1的id并未发生改变,这表明是在原有的内存地址修改的
    20 list_2 = list_1
    21 print(id(list_1))
    22 #OUT:1238165312008
    23 print(id(list_2))
    24 #OUT:1238165312008
    25 #list_2和list_1的id相同,那么修改list_2的值,list_1的值也会发生改变,
    26 #但是这种改变可能不是我们所希望的。
    27 #因此,在对列表、字典这类可变数据对象进行操作时,要特别注意这种修改所产生的副作用
    View Code
  • 相关阅读:
    怎样运用好ZBrush中的布尔运算
    怎样用好ZBrush 中的映射大师功能
    jvm
    java8 新用法
    entity framework delete table Error 11007:
    'EF.Utility.CS.ttinclude' returned a null or empty string.
    js判断是否绑定了事件。
    线程每5分钟刷新一次
    http请求提交cookie
    javascrip小笔记
  • 原文地址:https://www.cnblogs.com/Aoke/p/13616638.html
Copyright © 2011-2022 走看看