zoukankan      html  css  js  c++  java
  • 深拷贝、浅拷贝

    直接复制:直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变

    浅拷贝:copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变

    深拷贝:深拷贝,包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变

    为什么python默认的是浅拷贝?

    时间角度:浅拷贝花费时间更少

    空间角度:浅拷贝花费内存更少

    效率角度:浅拷贝只拷贝顶层数据,一般情况下比深拷贝效率更好。

    python中构造的任何数据都是对象,对象都有三个属性:type、id、value;

    python按照更新对象的方式,分为可变对象与不可变对象。

    可变对象:列表、字典、集合

    不可变对象:数字、字符串、元祖。不可变对象指的是id和value都不可变。

    引用:对象的别名。在python中,每个对象都会开辟一块空间来存储该对象。在使用该对象时候,只要知道该对象的地址,就可以对该对象进行操作。因为地址的数字地址不方便记忆,就使用变量名的形式来代替对象的数字地址。在python中,变量就是地址的一种表示形式,并不开辟存储空间。

  • 相关阅读:
    java优雅的使用elasticsearch api
    springboot mybatis优雅的添加多数据源
    java通过shield链接Elasticsearch
    java spark-streaming接收TCP/Kafka数据
    hiveQL求差集
    hiveQL去重
    Ubuntu16.04+Opencv3.3的安装教程
    TensorFlow池化层-函数
    TensorFlow激活函数+归一化-函数
    TensorFlow图像预处理-函数
  • 原文地址:https://www.cnblogs.com/happytaiyang/p/12684623.html
Copyright © 2011-2022 走看看