![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 51
qingshanlv_
这个作者很懒,什么都没留下…
展开
-
多线程笔记
join里面有计数器,会在put的时候加1,task_done的时候减一,当局计数器是0的时候,会马上阻塞。2.主线程不需要等待子线程结束,只要主线程结束,子线程就强制结束.守护线程,守护线程要在开始之前。用到join()方法,会将其阻塞在,在主线程结束后,对其释放。用安全的队列 from queue import Queue。1.子线程没有运行结束时,主线程不要运行。多线程,适用于 io 密集型。3.2多线程的安全性,不安全。3.1通过全局变量通信。死锁,资源竞争的情况。原创 2024-07-18 21:24:58 · 148 阅读 · 0 评论 -
17.上线文管理器,等面向操作
对属性的设置进行限制,设置属性就会触发.将属性名name和值value作为参数传递给该方法,可以在这个方法中实现对应的赋值操作,进行值的修改或验证.这个方法,方法定义了,使用索引访问对象时的行为,使用obj[key]进行索引操作时,会调用该方法,并将索引key作为参数传递给这个方法,(self, name)删除属性时,会调用该方法,并将name作为参数传递给该方法.,可以实现删除属性的逻辑。实现了__iter__()方法的都可以视为可迭代对象,列表,字典,元组,集合,字符串,原创 2024-07-04 22:40:26 · 962 阅读 · 0 评论 -
16.面向对象后续
静态方法通常用于执行与类相关的任务,但不依赖于类的实例状态或属性的操作,可以用于辅助函数,工具函数或者用于撞见对象的辅助方法等。属于类,而不是属于实例的方法,在调用实例方法时,不需要传入(self)作此参数,不依赖类的实例,不能访问实例属性和实例方法。所有的东西都是type的实例,所有的东西都是object的子类。属于类不是实例,第一个参数是cls表示类本身,而不是实例.通过cls参数,类方法可以访问和修改类级别的属性方法.可以访问类级别的属性和方法,类方法第一个参数是本身.原创 2024-07-01 16:52:20 · 334 阅读 · 0 评论 -
15.封装,继承,多态
抽象基类,允许定义抽象类和抽象方法,从而可以规范子类的行为,抽象基类并不能被实例化,只能用于继承,子类必须实现抽象基类中定义的所有方法。多态性支持,抽象基类实现了多态性,可以在使用抽象基类的地方接收不同的子类对象,实现更灵活的代码设计。2.代码组织和扩展,继承可以使代码的层次结构更加清晰,子类直接从父类继承,再写特定的.约束方法命名:强制子类必须事先指定的方法,避免方法名拼写错误,或者忘记实现方法的问题.同一个方法名可以在不同的类中实现,并且根据对象的类型调用不同类的方法。原创 2024-06-27 19:28:32 · 402 阅读 · 0 评论 -
14.面向对象编程
定义子在类中的方法,可以访问和操作对象的实例属性,并且在调用时会自动传入对象自身,通常用self作为第一个参数,实例方法是与类的实例关联的,并且可以访问和修改对象的状态.类的对象是类的具体实例,也叫实例对象类定义对象的属性和方法,对象是类的实体,具有自己的属性值和对类中的访问权限.用于描述对象的属性(数据)和方法(行为),对象是类的具体实例,表示一个具体的实体.与类相关联的函数,用来定义对象的行为,方法在类中定义,通过对象调用.第一个形参是self的方法叫做实例方法,类属性可以通过实例对象来访问。原创 2024-06-27 19:28:12 · 701 阅读 · 0 评论 -
13.模块
用于确定当前模块是否作为主程序执行,或者只是被导入到其他模块使用.import xx as xx 起一个别名,功能是一样的。= [ ] 避免冲突与全部导入相结合使用,做限制。模块是一个包含函数,变量,类等代码定义的py文件.from xxx import * 全部导入。文件作为主程序直接执行时,导入模块 import。1.python模块。做导入的时候会执行.原创 2024-06-27 19:27:35 · 130 阅读 · 0 评论 -
12.日志
运行分析: 允许我们跟踪应用程序的执行流程和事件,以便进行性能分析,行为分析和用户行为分析.DEBUG INFO WARNING ERROE(错误) CRITICAL(严重错误)方便问题排查:日志记录提供了有关问题的关键信息,可以快速定位和修复错误.系统监控: 通过记录查看应用程序的运行状态,资源使用和性能指标,日志记录将应用程序运行时的关键信息写入日志文件或者输出到控制台。正常情况下会进行追加写,可以设置mode = ’ ’3.logging的使用。原创 2024-06-27 19:27:15 · 150 阅读 · 1 评论 -
11.python异常
是try-except的可选部分,没有出现异常则会执行.:所有内置异常类的基类, 即其他所有的异常都是基于它的。:类型错误, 操作或函数应用于不兼容的数据类型.无论是否发生异常,都会执行.可以进行资源回收.try-finally不会被return中断。:名称错误, 尝试访问不存在的变量或函数.:值错误, 当函数接收到不合法的值时引发.:语法错误, 通常是代码书写不正确.:零除错误, 尝试将一个数除以零.保持finally代码的正确性。2.python的异常捕获。也可以分开写多个异常.原创 2024-06-27 19:26:54 · 206 阅读 · 0 评论 -
10.文件读写
三者都可以传递参数,传多少,指定读取的字符数或字节数.readlines传参小于当前输出整行,大于下一行也会输出.write(),使用方法将文本内容写入文件,调用write将内容写入到缓冲区.在日常生活中,工作中,文件的操作主要包括,创建文件,打开,关闭,读,写.with语句可以自动管理文件的打开和关闭,无需调用close()方法。二进制文件由字节组成,包含非文件数据,如图像,音频和视频.close(),使用这个可以不使用flush()flush(),将缓冲区的内容写入到磁盘。字典与json的想换转化。原创 2024-06-27 19:26:38 · 248 阅读 · 0 评论 -
9.闭包,装饰器,生成器.
2.yield关键字用于生成器函数中,用于定义一个生成器函数,并将值产生给调用者,生成器函数是一种特殊的函数,可以通过yield关键字将多个值逐步产生,而不是一次性返回所有结果,当生成器函数执行到yield语句时,函数会暂停执行并将值返回给调用者,函数的状态会被保存,方便下次到暂停的地方继续执行,生成器函数可以多次使用yield来生成多个值,并且可以在需要时进行迭代处理.使用yield语句将值生成出来,后暂停,请求下一个值的时候,从上次暂停的地方进行操作生成下一个值,再次暂停.原创 2024-06-27 19:26:25 · 327 阅读 · 0 评论 -
8.作用域与函数
对于可变对象(列表,字典),传递方式是引用传递,因为他们的值可以在函数内部进行修改,对于不可变对象(数字,字符串),传递方式是值传递,函数内部对形式参数的修改不会影响到实际参数.缺省参数:也叫做默认参数, 用于在定义函数的时候为参数提供默认值, 调用函数时可以不传递该参数的值, 所有的位置参数必须出现在默认参数前, 包括函数定义和调用.**kwargs,关键字传递,在参数是key=value的情况下, 所有的key-value都会被kwargs接收, 同时会将key-value组成一个字典.原创 2024-06-27 19:26:11 · 379 阅读 · 0 评论 -
7.函数相关
递归调用:递归函数在其定义中必须包含对自身的调用.通过递归调用,函数可以反复执行相同的操作,并且在每次调用中传递不同的参数.递归的用法: 树的遍历,阶乘呢个计算,斐波那契数列,递归的思想能够简化问题的表达和解决.终止条件:递归函数必须包含一个或多个基本情况,即不再进行递归调用的条件,避免无限递归。在函数进行计算的时候,可以接受外部提供的数据,参数可以是多个,也可以不给参数。在函数完成要做的事情之后,向调用返回数据.(a,b)形参,(1,2)是实参。参数如果不需要,可以省略不写。定义一个计算两数之和的函数。原创 2024-06-27 19:25:48 · 217 阅读 · 0 评论 -
5.for循环
start默认从0开始,stop,计数到stop结束.step步长默认1。跳过当前循环剩余的语句,继续进行下一轮循环。for循环定义的变量尽量不要用到循环外.一般用range(0,100)这种。for循环适用于已知数量的循环。1.range()函数。5.for循环的嵌套。原创 2024-06-27 19:25:08 · 133 阅读 · 0 评论 -
4.if 条件判断
1.if-else语句3.if语句可以嵌套4.逻辑运算符and 两个都为真,才是真or 一个为真 即是真not 取反and从左到右,所有值为真,返回最后一个真的, 有假的,返回第一个假的.or从左到右,返回第一个为真的值,若全为假返回最后一个为假的优先级 not>and>or5.成员运算符in 在指定序列找到对应值返回True 否则 Falsenot in 在指定序列没有找到对应值返回 True 否则False6.条件表达式。原创 2024-06-27 19:24:55 · 246 阅读 · 0 评论 -
3.imput 字符串常用方法 字符串倒序,切片
split(str, num)前者为切分, num为指定值 相当于切的次数。index(子字符串)可以返回子字符串出现的位置, rindex从右边找。isalnum() 至少有一个字符,且所有字符都是字母或数字。find(str,beg,end) 索引 -1。replace(str1,str2)用str2替换str1。strip()去除字符串首尾空白符,也可以向里面添加元素。find(子字符串)可以返回子字符串出现的位置,原创 2024-06-27 19:24:30 · 171 阅读 · 0 评论 -
2.字符串
使用%来占位,%s ,s意思是变为字符串放入的占位。精度控制%m.nd n控制小数,m控制整体长度。以r修饰的字符串会原样输出r’afggg’编码encode 解码decode。\t制表符 (a\tb\tc\t)创建方式 : 单,双引号,三引号。要保持原本的样子可用%d,%f。\ 转义符 行尾是续行符。4.字符串拼接和格式化。原创 2024-06-27 19:24:11 · 112 阅读 · 0 评论 -
1.变量数据类型
一般包括序言性注释(功能接口,数据的描述,模块功能),功能性注释(程序段的功能,语句功能,数据的状态),加减乘除(+ - * /) +可用于字符串的拼接。2.注释 # , “”“”“” , todo注释。元组(tuple) 有序不可变的元素序列。1.常见的字面量类型,整数,浮点数,字符串。变量的值是可以改变的,可重复使用的.集合(set) 无序不重复集合。float() 转换成浮点数。str() 转换成字符串。浮点型(float) 小数。int() 转换成整数。原创 2024-06-27 19:23:46 · 158 阅读 · 0 评论 -
python正则表达式
子表达式零次或一次枚举[ ]枚举取反[^ ]贪婪非贪婪,+与*非捕获组:(?!是不匹配?=是要匹配。原创 2023-04-20 23:06:00 · 57 阅读 · 0 评论 -
Xpath
可以选取一个可以定位到唯一的元素,增加查找的准确性,一般xpath中都使用相对路径。HTML是一种树形结构,所有的节点都是从根节点发散而来,每个节点具有属性和文本。preceding:选取文档中当前节点的开始标签之前的所有节点。选取文档中当前节点的结束标签,之后的所有节点。兄弟节点:sibling,同级节点,拥有相同的父节点。后代节点:descendant,孙辈及以下节点。祖先节点:ancestor,爷爷辈及以上节点。父节点:parent,上一级节点。子节点:child,下一级节点。原创 2023-05-11 23:35:26 · 254 阅读 · 0 评论 -
python多线程
守护线程:主线程不需要等待子线程运行结束,只要主线程结束,子线程就结束。的时候加一,在done的时候减一,当计数器是0的话会释放阻塞。join()方法可以使子线程运行结束之前不运行主线程。传参:在多线程中实用类方法的传参。python中使用全局变量的多线程不安全,在代码前和后添加,上锁可以使线程安全。join:阻塞队列,在主线程阻塞。run()方法适用于复杂的逻辑。join里有一个计数器,在put。守护线程要在线程启动之前设置。多线程,适用于io,密集型。多进程cpu密集型的。Rlock:可重入锁。原创 2023-05-13 15:09:26 · 106 阅读 · 0 评论