python
文章平均质量分 61
萌新学Python
这个作者很懒,什么都没留下…
展开
-
上下文管理器with用法
上下文管理器with class Foo(object): def __init__(self): print('实例化一个对象') def __enter__(self): print('进入') def __exit__(self, exc_type, exc_val, exc_tb): print('退出') obj = Foo() with obj: print('正在执行') 打印顺序: 实例化一个对象 进原创 2021-04-07 15:22:32 · 227 阅读 · 0 评论 -
Python进阶-垃圾回收
Python进阶-垃圾回收垃圾回收机制引用计数标记-清除分代回收触发条件总结 因为现在的计算机内存比较富裕,所以写程序的时候不会太考虑垃圾回收这方面的知识。但是,出来混总是要还的,既然我们不断的向系统索要资源,那么还是要了解一下什么时候以及怎样把资源还回去 垃圾回收机制 Python中的垃圾回收是以引用计数为主,分代回收为辅 引用计数 在Python中每一个对象的核心都是一个结构体PyObject,它的内部有一个计数器(ob_refcnt),程序在运行的过程中会实时的更新ob_refcnt的值,来反映当原创 2020-08-20 15:21:57 · 275 阅读 · 0 评论 -
Python进阶-多任务
Python进阶-多任务什么是多任务?线程进程协程 什么是多任务? 简单来说就是 同时可以运行多个任务 两种多任务 并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行 并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的 真正的"并行"只能在多核CPU上实现,现实中由于任务数量远远多于CPU的核心数量,所以基本上都是“并发”。 操作系统会自动把很多任务轮流调度到每个核心上执行 实现多任务的三种方式 线程、进程、协程 线程 概念:操作系统能够进行运原创 2020-08-20 08:22:39 · 282 阅读 · 0 评论 -
Python进阶-互斥锁
Python进阶-互斥锁为什么要使用互斥锁资源竞争产生的原因互斥锁的作用使用互斥锁解决资源竞争的问题总结 在编程中,为了保证共享数据操作的完整性,引入了互斥锁的概念。 为什么要使用互斥锁 当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制 线程同步能够保证多个线程安全访问竞争资源,最简单的同步机制是引入互斥锁 互斥锁能够解决资源竞争 资源竞争产生的原因 1.多线程共享全局变量 2.多个线程不加限制随意访问全局资源,产生竞争,导致数据错误 互斥锁的作用 互斥锁为资源引入一个状态:锁定/原创 2020-08-13 21:01:44 · 331 阅读 · 0 评论 -
Python进阶-多任务-队列
Python进阶-多任务-队列使用场景队列的性质queue模块队列类别队列基本方法 python的编程中有四种队列模式,但是其应用场景不同,此篇文章介绍的是线程之间通信queue。 使用场景 总所周知,Python的多线程不是真正的多线程,但是对于io密集型操作还是能发挥其作用的,多线程并发编程的重点,是线程之间共享数据和线程间的通信,为解决线程之间数据共享的问题,Python提供了一个数据类型队列可以用于在多线程并发的模式下,安全的访问数据并且不会造成数据共享冲突。 那么多线程之间是如何进行变量共享的原创 2020-08-13 20:28:18 · 666 阅读 · 0 评论 -
Python进阶-描述符
Python进阶-描述符 什么是描述符 如果一个类实现了__get__()、__set__()、__delete__()中的任意一种方法的类,用这个类创建的对象叫做描述符对象 描述符对象赋值给另一个类的类属性,那么这个类就是描述符 描述符分为两种 1.数据描述符:同时定义了__get__和__set__方法的描述符称为数据描述符 2.非数据描述符:只定义了__get__方法的描述符称为非数据描述符 描述符作用 访问属性最终执行的是函数 ...原创 2020-08-07 08:28:27 · 238 阅读 · 0 评论 -
Python进阶-元类
元类 在Python中一切皆对象,数字、字符串、函数等都是对象,那么利用class关键字创建的类也是一个对象叫做类对象,那么他们都是什么创建的呢? 他们都是由元类创建的,而元类是由自身创建 Python是一种动态类型语言,可以动态的创建变量,那么同样可以动态的创建类,我们可以按照我们的需求通过type去创建所需要的类 总所周知,type函数可以判断对象类型,但是type还有另外一个用法,就是可以创建类 type会根据传入的参数不同,执行不同的事情 注意:尽量不要让一个函数拥有2种完全不同的功能,P原创 2020-08-06 15:53:41 · 103 阅读 · 0 评论 -
Python进阶-深浅拷贝
深浅拷贝浅拷贝深拷贝 浅拷贝 定义 对于一个对象的顶层拷贝(拷贝引用,不拷贝数据) 对于 不可 变类型 Number String Tuple,浅复制仅仅是地址指向,不会开辟新空间 对于 可 变类型 List、Dictionary、Set,浅复制会开辟新的空间地址(仅仅是最顶层开辟了新的空间,里层的元素地址还是一样的),进行浅拷贝 浅拷贝后,改变原始对象中为可变类型的元素的值,会同时影响拷贝对象的;改变原始对象中为不可变类型的元素的值,只有原始类型受影响。 import copy alist =原创 2020-08-05 11:26:34 · 121 阅读 · 0 评论 -
Python进阶-三器一闭
Python进阶-三器一闭迭代器生成器闭包装饰器 迭代器 定义 迭代器是一个可以记住遍历位置的对象,从第一个元素开始访问,知道所有元素被访问结束,迭代器只能向后遍历,不能后退 一个实现了__iter__方法和__next__ 方法的对象就是迭代器 可迭代对象 只要能通过for…in…进行遍历的,那么这个数据类型就是可迭代对象 一个实现了__iter__方法的对象就是可迭代对象 注意 迭代器一定是可迭代对象,可迭代对象不一定是迭代器 判断迭代器和可迭代对象 通过Iterable来判断是否是可迭代对原创 2020-08-05 10:50:22 · 319 阅读 · 0 评论 -
Python基础
Python基础字符串操作1.find2.index3.count4.replace5.split6.capitalize7.title8.startswith9.endswith10.lower11.upper12.ljust13.rjust14.center15.lstrip16.rstrip17.strip18.partition19.splitlines20.isalpha21.isdigit22.isalnum23.isspace24.join列表操作添加appendextendinsert删除p原创 2020-08-04 16:56:19 · 100 阅读 · 0 评论