zoukankan      html  css  js  c++  java
  • Python中的对象与参考

    参考

    当创建一个对象并给它赋一个变量的时候,这个变量仅仅参考哪个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定

    对象与参考的例子

    注意两次不同的赋值操作listA的不同

    listA = ['a','b','c','d']
    listB = listA  # 普通赋值操作,只是使得listB参考listA
    
    del listA[0]
    
    # listB的值始终和listB保持同步,因为数据都在同一个内存地址中
    print('listA:',listA)
    print('listB:',listB)
    
    listA = ['a','b','c','d']
    listB = listA[:] # listA现在独立于listB,即二者内存地址不同
    
    print('使用切片来对列表进行赋值')
    print('listA:',listA)
    print('listB:',listB)
    

    output:

    listA: ['b', 'c', 'd']
    listB: ['b', 'c', 'd']
    使用切片来对列表进行赋值
    listA: ['a', 'b', 'c', 'd']
    listB: ['a', 'b', 'c', 'd']
    

    如果你想要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单 对象 ),那么你必须使用切片操作符来取得拷贝。如果你只是想要使用另一个变量名,两个名称都 参考 同一个对象,那么如果你不小心的话,可能会引来各种麻烦。

    给Perl程序员的注释
    记住列表的赋值语句创建拷贝。你得使用切片操作符来建立序列的拷贝。

  • 相关阅读:
    HDU 5313 bitset优化背包
    bzoj 2595 斯坦纳树
    COJ 1287 求匹配串在模式串中出现的次数
    HDU 5381 The sum of gcd
    POJ 1739
    HDU 3377 插头dp
    HDU 1693 二进制表示的简单插头dp
    HDU 5353
    URAL 1519 基础插头DP
    UVA 10294 等价类计数
  • 原文地址:https://www.cnblogs.com/youpeng/p/11466388.html
Copyright © 2011-2022 走看看