zoukankan      html  css  js  c++  java
  • python 一些基础知识

    Python 注释的原理:

      原理:根据对象的引用计数器,对象创建会给对象一个引用计数器属性。如果该属性的值为0,那么该对象会被释放。创建一个字符串对象,但是没有任何引用,计数器为0。

    Python小整数对象:

      
      python为了优化速度,使用了小整数对象池,避免整数频繁申请和销毁内存空间。

      python对小整数定义是[-5,256] 这些整数对象提前建立,不会被垃圾回收。在python中这个范围python整数使用的都是同一个对象

      定义两个相同的字符串时:引用计数器为0,触发垃圾回收

      小结:

        1、小整数共用对象,常住内存。

        2、单个字符共用对象,常住内存

        3、单个单词,不可修改,默认开启intern机制,共用对象,引用计数为0,则销毁

        4、字符串(包含空格),不可修改,没有开启intern机制,不共用对象,引用计数为0,销毁。

     python深浅拷贝:

       1、用“=”赋值:

       “=”赋值存会把存放变量a的地址值传给被被赋值b,最后两个变量引用同一个地址。

      

      对于可变变量来说其中一个变量a的值改变,另一个变量b也会随着改变,但是id不会变:

      

      注释:他们是连体婴儿,你有的我全要,完完全全不分彼此。

      对于不可变变量来说,变量a改变,另一个变量b,不会改变:

      

     注释:连体婴儿,第三者出现,就变成两个人分家了。

       2、浅拷贝copy.copy:

      变量 l1 通过copy()拷贝给变量 l2,地址改变。并且使用copy改变第一层以外的元素,两个变量都会改变;改变第一层变量,改变的变量会发生改变:

      

      拷贝后,改变的列表第二层深层元素,所以l1和l2都改变,但是第二次改变第一层元素,只有l1发生改变。

      注释:他们是两个人长得一样,在房子一楼的时候装作互相不认识,在房子楼上时就不分彼此,搞到一起了。

      3、深拷贝copy.deepcopy():

      数据完完全全不共享,数据之间不会影响,内存完全独立。

      

      注释:两个人长得一样,老死不相往来。

      小结:

      

        1,深浅拷贝都是对源对象的复制,占用不同的内存空间。

        2,不可变类型的对象,对于深浅拷贝毫无影响,最终的地址值和值都是相等的。

        3,可变类型: 
          =浅拷贝: 值相等,地址相等 
          copy浅拷贝:值相等,地址不相等 
          deepcopy深拷贝:值相等,地址不相等

     ———————————————————————————————————————————————————————————

                                          如果有说的不对的,希望大家提出来,万分感谢。

  • 相关阅读:
    Azure 虚拟机诊断设置问题排查
    虚拟机压力测试延迟高的可能原因及 ILPIP 配置 / 查询脚本
    理解 Azure 平台中虚拟机的计算能力
    如何复制或导出托管磁盘
    理解托管磁盘的原理与优势
    Azure 托管镜像和非托管镜像对比
    如何将同一云服务下的虚拟机从经典部署模型迁移到 Azure Resource Manager
    如何将同一 VNET 下的虚拟机从经典部署模型迁移到 Azure Resource Manager
    如何将使用托管磁盘虚拟机的 OS 盘挂载到其他虚拟机上
    基于 Azure 托管磁盘配置高可用共享文件系统
  • 原文地址:https://www.cnblogs.com/MoonlightMaleGod/p/9543391.html
Copyright © 2011-2022 走看看