文章分类 -  Python基础

摘要:metaclass元类 概念 :想要python中创建一个了类使用class关键词即可创建,并且在python中一切皆对象,类也是一个对象。你创建类的目的就是为了创建类的实例对象,然后调用这些对象,实例化的对象是被类创建的,类是被元类创建的。而type就是Python在背后用来创建所有类的元类。凡是 阅读全文
posted @ 2019-10-10 17:10 小夏02
摘要:转自:http://www.langzi.fun/迭代器与生成器.html 迭代器和可迭代对象 Iterable:可迭代对象,必须要实现iter或getitem魔法函数 Iterator:迭代器对象,必须有next魔法方法。 关于for执行原理: 迭代器的意义 :(引用‘樱雨楼’文章的观点) 生成器 阅读全文
posted @ 2019-10-09 22:57 小夏02
摘要:面向对象三大特性 实例化一个类需要经过步骤 : 1. python 调用内置的type类 2. 然后type调用内置的元类mateClass 3. mateClass再调用 方法将类实例化,此时完成了第一步 4. 这个实例将会初始化自己的类变量,就是把自己从头到尾扫视一遍, 5. 进入构造方法,并初 阅读全文
posted @ 2019-09-29 10:14 小夏02
摘要:Python垃圾回收机制 ​ 引用计数为主,标记 清除和分代回收为辅的回收机制 ​ 引用计数:引用加1,当计数为0是回收 ​ 计数增加: ​ 创建 ​ 引用 ​ 作参数 ​ 放入容器 ​ 缺点: ​ 1、维护引用计数消耗资源 ​ 2、循环引用 标记 清除:(第一代.第二代.第三代) 分代回收:基本思 阅读全文
posted @ 2019-09-29 10:13 小夏02
摘要:python(或者说动态语言)的内存分配它的原理依然遵循静态语言(如c、java等)。在静态语言中,创建列表需要先声明大小,如需扩充则需要重新声明一个更大的列表,并把原有的列表销毁。我猜测python等动态语言其源码也是相似的实现。不一样的是在静态语言中重新创建列表,必然会导致两个对象的id不一样, 阅读全文
posted @ 2019-09-29 10:06 小夏02
摘要:CPython 官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广且被的Python解释器。 IPython IPython是基于CPython之上的一个交互式解释器,也就是说,IPyt 阅读全文
posted @ 2019-09-29 09:58 小夏02
摘要:直接赋值:其实就是对象的引用,或者说是该对对象的另一个别名。 浅拷贝copy():只是对父对象的拷贝,子对象依然只是引用没有拷贝。 深拷贝deepcopy():对一个对象的完全拷贝。 接下来我们看看下面这个例子: 结合概念我们来分析一下上面的例子: (1)直接赋值 由上面的例子很明显b受a的影响,随 阅读全文
posted @ 2018-12-13 22:36 小夏02
摘要:前言: 在对一些资源进行访问时,常常会出现操作不当或出现异常而导致资源没有得到必要关闭资源释放资源。例如:文件读取、socket等等。 下面内容以文件读取open方法为例。 原始操作: 上述代码存在的问题: (1)容易忘记文件关闭。 (2)当文件操作出现异常导致程序提早离开,而没有执行关闭文件操作。 阅读全文
posted @ 2018-12-11 23:07 小夏02