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深拷贝:值相等,地址不相等

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

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

python 一些基础知识的更多相关文章

  1. Python数据挖掘——基础知识

    Python数据挖掘——基础知识 数据挖掘又称从数据中 挖掘知识.知识提取.数据/模式分析 即为:从数据中发现知识的过程 1.数据清理 (消除噪声,删除不一致数据) 2.数据集成 (多种数据源 组合在 ...

  2. Python 面向对象基础知识

    面向对象基础知识 1.什么是面向对象编程? - 以前使用函数 - 类 + 对象 2.什么是类什么是对象,又有什么关系? class 类: def 函数1(): pass def 函数2(): pass ...

  3. python 爬虫基础知识一

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 网络爬虫必备知识点 1. Python基础知识2. P ...

  4. Python:基础知识

    python是一种解释型.面向对象的.带有动态语义的高级程序语言. 一.下载安装 官网下载地址:https://www.python.org/downloads 下载后执行安装文件,按照默认安装顺序安 ...

  5. Python学习-基础知识-2

    目录 Python基础知识2 一.二进制 二.文字编码-基础 为什么要有文字编码? 有哪些编码格式? 如何解决不同国家不兼容的编码格式? unicode编码格式的缺点 如何既能全球通用还可以规避uni ...

  6. 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

  7. Python入门 ---基础知识

    Python入门不知道这些你还是承早放弃吧!真的 Python 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言 ...

  8. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  9. python编码基础知识

    http://www.javaeye.com/topic/560229 一 预备知识 字符集1, 常用字符集分类ASCII及其扩展字符集作用:表语英语及西欧语言.位数:ASCII是用7位表示的,能表示 ...

  10. Python 爬虫基础知识

    requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作, ...

随机推荐

  1. springCloud 概念介绍

    微服务(Microservice) 那么首先介绍下微服务.微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以 ...

  2. js报错

    1.如果出现找不到js方法,感觉写的js都正确就是调试报错,可能原因是js文件重复引用 2.在用ajax异步提交时千万别用 submit 控件,submit控件是表单提交控件,提交表单的同时不会执行异 ...

  3. td标签里内容不换行

    在一些页面开发中,除自己操作外,引起换行的情况一般有: Ex一.td标签里内容长度过长引起换行: Ex二.div标签(或其他标记)里内容有文本和图片引起换行: 解决方法: 针对例子一用<nobr ...

  4. AngularJS 学习(-)Hello world

    早期的AngularJS使我们的前端开发模式发生很大的变化,基使用MVC. Model - html 模板:Controller - js脚本; Model 来自于Web API 或其他Service ...

  5. SpringBoot JPA注解详解

    1.@OneToOne 2.@OneToManytargetEntity: 默认关联的实体类型.如果集合类中指定了具体类型了,不需要使用targetEntity.否则需要targetEntity指定C ...

  6. maven课程 项目管理利器-maven 3-1 maven常用的构建命令

    mvn -v 查看mvn版本 mvn compile  编译 mvn test 测试 mvn package 编译,打包(这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功 ...

  7. Spring课程 Spring入门篇 1-3Spring框架

    课程链接: 1 框架与类库的区别: 框架封装了逻辑,高内聚,类库是松散的工具组合 框架专注于某一个领域,类库通用性较强 2 为什么使用框架: a 业务系统日趋复杂 b 重用度高,开发效率和质量提高 c ...

  8. Python:Tkinter的GUI设计——物体实时移动

    参考: 1.Tkinter之Canvas篇 2.python GUI实践:做一个满图乱跑的小球 3.[Tkinter 教程08] Canvas 图形绘制 4.tkinter模块常用参数(python3 ...

  9. 【起航计划 021】2015 起航计划 Android APIDemo的魔鬼步伐 20 App->Intents createChooser

    Intents 这个例子的代码非常简单: public void onGetMusic(View view) { Intent intent = new Intent(Intent.ACTION_GE ...

  10. constrained属性

    hibernate文档上是这么写的: constrained(约束) (可选) 表明该类对应的表对应的数据库表,和被关联的对象所对应的数据库表之间,通过一个外键引用对主键进行约束.这个选项影响save ...