Python
文章平均质量分 77
<花开花落>
这个作者很懒,什么都没留下…
展开
-
iOS App 测试环境升级,遇到的问题以及解决方法
1. WebDriverAgent 编译失败;2. 最新的 W3C Action;3. Appium版本问题; 4. 处理系统弹框;5. Google登录页面处理原创 2024-07-04 21:01:09 · 710 阅读 · 0 评论 -
Mac 上使用 Tesseract OCR 识别图片文本
Tesseract OCR 引擎:Tesseract是一个开源的OCR引擎,你需要先安装它。可以从Tesseract官方网站(https://github.com/tesseract-ocr/tesseract)下载适用于你的操作系统的安装程序或源代码,并按照官方文档进行安装。Tesseract OCR 对于低分辨率或模糊的图片可能无法准确识别。尝试使用更高分辨率和清晰度的图片来提高识别结果的准确性。对于 Mac 上的截图,一般都是很清晰的,所以这个缺点影响不大。在 Mac 上,使用。原创 2023-07-26 16:59:44 · 2580 阅读 · 0 评论 -
使用 Pycharm 调试远程代码
ssh 远程连接,将代码同步到本地,在本地执行调试,改好代码后,再同步回服务器。在 Windows 上的 pycharm 上编码、调试、运行,本质上环境是 Mac 的环境。原创 2023-06-10 20:05:39 · 1868 阅读 · 0 评论 -
Python 代码规范
代码风格,分解代码,合理使用assert和with,单元测试,pdb&cPofile原创 2021-08-15 16:42:46 · 364 阅读 · 0 评论 -
OCR-调用第三方API识别验证码
使用第三方API的OCR技术来识别验证码;Python的三方库 pytesseract 也是可以进行OCR识别处理,只是识别率较低。原创 2020-08-09 14:26:26 · 1512 阅读 · 0 评论 -
不恰当的 import 会导致的问题
import时应该注意的:1. from … import … (去掉含有循环导入的import形式);2. 避免import直接执行的代码;3.类的继承时,避免基类的模块去 import 派生类的模块原创 2020-07-05 10:49:21 · 713 阅读 · 0 评论 -
几个常用的Python技巧,第一个例子就震惊了,大部分人都不相信还有这种操作!
带下划线的数字: 10_000_000_000 和 10_000 可以直接计算嘛?print(10_000_000_000 + 10_000) ?? are you ok ?原创 2020-06-10 23:26:35 · 338 阅读 · 0 评论 -
Python中常见的术语
已经有两年多的Python使用经验了,也看了一些Python方面的书籍、视频教程,做了很多笔记,但是在学习《流畅的Python》,将最后术语表章节copy整理时,发现很多知识点虽然我知道、会用,但是让我像书中那样讲清楚,甚至举相关的demo来解释,我可能有点虚,还是需要查阅相关的文档才行,毕竟很多点很细,工作实践中使用的很粗,要想深耕这片领域,需要不断地学习。原创 2020-04-19 10:32:36 · 2718 阅读 · 0 评论 -
含元类、类装饰器的Python代码执行顺序
通过学习《流畅的Python》这本书的第21章:类元编程,我算是系统地理清了Python代码的执行顺序,以前工作和学习中涉及元类、类装饰器的很少,所以自认为对Python代码执行顺序比较清楚,直到现在看到该书作者的这几个举例,我才算是真正明白。下面这个evaltime.py脚本值得多看几遍,加深理解。原创 2020-04-11 16:22:27 · 412 阅读 · 0 评论 -
Python代码执行顺序
Python脚本,可以直接执行,也可以作为模块被导入其他脚本中,这两者在代码执行时有什么区别呢?建议使用debug一步一步查看执行顺序。原创 2020-04-08 23:34:59 · 2041 阅读 · 0 评论 -
流畅的Python: 属性描述符—验证属性
notes of learning 'Fluent Python' book : just record some of useful info including code.原创 2020-04-05 14:53:48 · 373 阅读 · 0 评论 -
流畅的Python: 动态属性和特征
1. 使用动态属性转换数据2. 使用动态属性访问JSON类数据3. 处理无效属性名4. 使用__new__方法以灵活的方式创建对象5. 使用特性验证属性:property6. 特性会覆盖属性7. 定义一个特性工厂函数8. 影响属性处理方式的特殊属性9. 处理属性的内置函数10. 处理属性的特殊方法原创 2020-04-03 00:06:02 · 765 阅读 · 2 评论 -
Python: 使用future,并发下载图片
下载图片时,使用 concurrent.futures 模块实现并发下载。为了高效处理网络I/O,需要使用并发,因为网络有很高的延迟,所以为了不浪费CPU周期去等待,最好在收到网络响应之前做些其他的事。原创 2020-03-14 16:17:32 · 959 阅读 · 1 评论 -
流畅的Python: 协程(基础)
文章目录1. 用作协程的生成器的基本行为2. 使用协程计算移动平均值3. 预激协程的装饰器4. 终止协程和异常处理5. 让协程返回值6. 使用yield from1. 用作协程的生成器的基本行为def simple_coroutine(): print("—> Coroutines started") var = yield # 协程使用生成器函数定义:定义体中有y...原创 2020-03-11 00:02:07 · 244 阅读 · 0 评论 -
流畅的Python: 上下文管理器
文章目录1. 上下文管理器和with块2. contextlib模块中的实用工具3. if语句之外的else块学习《流畅的Python》,系列博客大部分均摘自本书,仅用于交流、学习和记录。1. 上下文管理器和with块上下文管理器对象存在的目的是管理 with 语句,就像迭代器的存在是为了管理 for 语句一样。with 语句的目的是简化 try/finally 模式。这种模式用于保证一...原创 2020-03-07 18:09:42 · 245 阅读 · 0 评论 -
流畅的Python: 可迭代的对象、迭代器和生成器2
文章目录1. 典型的迭代器2. 生成器函数3. Sentence类升级版:惰性实现4. Sentence类终极版:生成器表达式1. 典型的迭代器import reimport reprlibRE_WORD = re.compile("\w+")class SentenceIterator: def __init__(self, words): self.wo...原创 2020-03-04 22:03:11 · 114 阅读 · 0 评论 -
流畅的Python: 可迭代的对象、迭代器和生成器
文章目录1. 单词序列Sentence2. 序列可以迭代的原因:iter函数3. 可迭代的对象与迭代器的对比1. 单词序列Sentenceimport reimport reprlibRE_WORD = re.compile("\w+")class Sentence: ''' 定义了一个 Sentence 类,通过索引从文本中提取单词。 ''' d...原创 2020-02-22 23:49:44 · 145 阅读 · 0 评论 -
流畅的Python: 继承的优缺点
文章目录1. 子类化内置类型很麻烦2. 多重继承和方法解析顺序1. 子类化内置类型很麻烦在Python3中,内置类型可以子类化,但是有个重要的注意事项:内置类型(CPython)不会调用用户定义的类覆盖的特殊方法。内置类型的方法不会调用子类覆盖的方法。例如,dict 的子类覆盖的 __getitem__() 方法不会被内置类型的 get() 方法调用。class DoppelDict(d...原创 2020-02-08 22:43:20 · 374 阅读 · 0 评论 -
流畅的Python: 从协议到抽象基类
文章目录1. 序列2. 猴子补丁3. 定义抽象基类的子类4. 标准库中的基类(1) collections.abc 模块中的抽象基类(2) 抽象基类的数字塔1. 序列定义为抽象基类的 Sequence 正式接口: Sequence 抽象基类和 collections.abc 中相关抽象类的 UML 类图,箭头由子类指向超类,以斜体显示的是抽象方法。demo:类Foo,它没有继承 abc...原创 2020-01-29 15:59:01 · 459 阅读 · 0 评论 -
流畅的Python: 序列的修改、散列和切片
文章目录1. 使用reprlib.repr()的序列2. 协议和鸭子模型3. 可切片的序列4. 切片原理5. 能处理切片的 `__getitem__` 方法6. 动态存取属性7. 散列和快速等值测试1. 使用reprlib.repr()的序列为了编写 Vector(3, 4)和 Vector(3, 4, 5) 这样的代码,我们可以让__init__方法接受任意个参数(通过 *args);...原创 2020-01-18 14:17:28 · 378 阅读 · 0 评论 -
流畅的Python: 符合Python风格的对象
符合Python风格的对象文章目录符合Python风格的对象1. 对象表示形式2. 向量类的示例:3. classmethod与staticmethod4. 格式化显示5. 可散列的Vector2d6. Python的私有属性和“受保护的”属性7. 使用`__slot__ `类属性节省空间8. 覆盖类属性1. 对象表示形式每门面向对象的语言至少都有一种获取对象的字符串表示形式的标准方式。P...原创 2020-01-05 15:52:28 · 201 阅读 · 0 评论 -
Python TCPServer 多线程多客户端通信
Python ThreadingTCPServer 多线程多客户端通信自动重连文章目录Python ThreadingTCPServer 多线程多客户端通信自动重连最简单、原始的TCP通信demoTCPServerTCPClient最简单、原始的TCP通信demo服务端Http请求:import socket# 创建一个servicesockeserviceSocket = sock...原创 2019-12-29 21:39:54 · 2504 阅读 · 0 评论 -
流畅的Python:对象引用、可变性和垃圾回收
文章目录对象引用、可变性和垃圾回收1. 变量不是盒子2. 标识、相等性和别名3. 在**==**和is之间选择4. 元组的相对不可变性5. 默认做浅复制6.为任意对象做深复制和浅复制7. 函数的参数作为引用时不要使用可变类型作为参数的默认值8. 防御可变参数9. del和垃圾回收10. 弱引用WeakValueDictionary简介:11. 弱引用的局限12. Python对不可变类型施加的把戏...原创 2019-12-21 15:40:58 · 219 阅读 · 0 评论 -
流畅的Python:函数装饰器和闭包二
文章目录1. 一个简单的装饰器2. 标准库中的装饰器2.1 使用functools.lru_cache做备忘2.2 单分派泛函数3. 叠放装饰器4. 参数化装饰器5. 参数化clock装饰器1. 一个简单的装饰器定义了一个装饰器,它会在每次调用被装饰的函数时计时,然后把经过的时间、传入的参数和调用的结果打印出来。# a3_4_decorate.pyimport timedef cloc...原创 2019-12-15 21:48:18 · 271 阅读 · 0 评论 -
流畅的Python:函数装饰器和闭包一
函数装饰器和闭包文章目录函数装饰器和闭包1.基础2. Python何时执行装饰器3. 使用装饰器改进“策略”模式4. 变量作用域规则5. 闭包6. nonlocal声明1.基础函数装饰器用于在源码中“标记”函数,以某种方式增强函数的行为。这是一项强大的功能,但是若想掌握,必须理解闭包。装饰器是可调用的对象,其参数是另一个函数(被装饰的函数)。装饰器可能会处理被装饰的函数,然后把它返回,或者...原创 2019-12-08 00:52:57 · 226 阅读 · 0 评论 -
流畅的Python:把函数视作对象之使用一等函数实现设计模式
文章目录把函数视作对象 - 使用一等函数实现设计模式1. 经典的“策略”模式2. 使用函数实现“策略”模式3. 选择最佳策略:简单的方式4. 找出模式中的全部策略把函数视作对象 - 使用一等函数实现设计模式《设计模式:可复用面向对象软件的基础》一书是这样概述“策略”模式的:定义一系列算法,把它们一一封装起来,并且使它们可以相互替换。本模式使得算法可以独立于使用它的客户而变化。1. 经典的“...原创 2019-12-01 15:30:50 · 240 阅读 · 0 评论 -
流畅的Python:把函数视作对象之一等函数
学习《流畅的Python》,后续系列博客大部分均摘自本书,仅用于交流、学习和记录。把函数视作对象文章目录把函数视作对象1. 一等函数2. 高阶函数3. 可调用对象4. 用户可调用的类型5. 函数注解6. 支持函数式编程的包1. 一等函数Python 中,函数是一等对象。编程语言理论家把“一等对象”定义为满足下述条件的程序实体:在运行时创建能赋值给变量或数据结构中的元素能作为参数传给...原创 2019-11-24 22:09:43 · 214 阅读 · 0 评论 -
流畅的Python:数据模型之集合
集合set学习《流畅的Python》,后续系列博客大部分均摘自本书,仅用于交流、学习和记录。集合的本质是许多唯一对象的聚集。因此,集合可以用于去重。列表、字典、集合等不可散列的对象是不能用来作为集合的元素的,不可变的对象如字符串、元组等可散列才可以。set([1,2,3,[4,5]])Traceback (most recent call last): File "D:\Python...原创 2019-11-09 14:29:57 · 152 阅读 · 0 评论 -
流畅的Python:数据模型之字典
Python数据模型:字典学习《流畅的Python》,后续系列博客大部分均摘自本书,仅用于交流、学习和记录。文章目录Python数据模型:字典泛映射类型字典推导用setdefault处理找不到的键映射的弹性键查询字典的变种不可变映射类型泛映射类型dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石。模块的命名空间、实例的属性和函数的关键字参数中都可以看到字典的身影。跟它...原创 2019-11-03 17:49:47 · 452 阅读 · 0 评论 -
流畅的Python:数据模型
Python数据模型文章目录Python数据模型Python风格的纸牌字符串表现形式特殊方法列表推导、生成器表达式切片序列的增量赋值关于 += 的谜题数组双向队列及其他开始学习《流畅的Python》,后续系列博客大部分均摘自本书,仅用于交流、学习和记录。Python风格的纸牌import collectionsCard = collections.namedtuple('Card', [...原创 2019-11-02 00:15:46 · 290 阅读 · 0 评论 -
编写高质量代码:Python中的内部机制(下)
Rome was not built in one day, coding will not advance vigorously with one effort.内部机制文章目录内部机制Python对象协议迭代器协议生成器基于生成器的协程对象的管理与垃圾回收Python对象协议可以这样比方:在Python中我需要调用你的某个方法,你正好有这个方法。举例:如果有占位符%s,那么按照字符...原创 2019-10-20 22:11:48 · 224 阅读 · 0 评论 -
编写高质量代码:Python中的内部机制(上)
Rome was not built in one day, coding will not advance vigorously with one effort.内部机制文章目录内部机制理解built-ln objectsmetaclass`__init__()`不是构造方法名字查找机制描述符机制使用更为安全的property除了掌握Python本身的语法以及使用外,对其内部机制的探索可以...原创 2019-10-20 22:08:30 · 230 阅读 · 0 评论 -
python多线程原理及其实现
Python多线程原理与实现目的:(1)了解python线程执行原理(2)掌握多线程编程与线程同步(3)了解线程池的使用1 线程基本概念1.1 线程是什么?线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1) 地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2) 资源拥有:进程是资源分配和拥有的单...原创 2019-02-17 16:02:48 · 3284 阅读 · 3 评论 -
python多进程原理及其实现
1 进程的基本概念什么是进程?进程就是一个程序在一个数据集上的一次动态执行过程。进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在执行过程中所需要使用的资源;进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志。进程的过程: 创建, 就绪, 运行 ,阻塞, ...原创 2019-02-16 21:29:14 · 11268 阅读 · 0 评论 -
两种方法实现截取文件内容: 指定位置和长度, 截取文件的内容
遇到一个小需求: 如何提取一个bin文件中的内容, 前提是指定提取的开始位置, 和提取内容的长度.方法一:import osdef cutBinFile(strFile, iStart=0, iLength=None): if iLength is None: iLength = os.path.getsize(strFile) if not os.pat...原创 2019-01-09 01:01:30 · 4305 阅读 · 0 评论 -
python 中的进制转换 整理
工作中经常需要用到进制转换, 一直对这方面有一些模糊, 终于有时间把这方面整理一下了.常用的进制: 二进制bin(), 八进制oct(), 十进制int(), 十六进制hex()原创 2019-01-06 14:39:11 · 647 阅读 · 2 评论 -
入门python常见报错
1.NameError变量名错误报错:print(a)# Traceback (most recent call last):# File "<stdin>", line 1, in <module># NameError: name 'a' is not defined解决方案:先要给a赋值。才能使用它。在实际编写代码过程中,报NameError错误时,查...转载 2018-12-11 00:38:33 · 783 阅读 · 0 评论 -
面试题: Flatten Array 数组降维
Given an array that may contain nested arrays, produce a single resultant array.方法一:def flattenArray(inputArray, outArray=None): if outArray is None: outArray = [] for ele in inputAr...原创 2018-12-09 21:41:10 · 602 阅读 · 0 评论 -
一道python面试题: 输出字符串中对称的子字符串的最大长度(最长回文)
举例: 输入cool 则输出2 输入nan 则输出3 输入google 则输出4直接上代码:方法一:(我的)mystr ='goaaogle'newlist = []for i in range(len(mystr)): try: if mystr[i] ==mystr[i+1]: n=1 while ...原创 2018-08-27 17:08:46 · 3213 阅读 · 6 评论 -
Python3:range() 逆序的解释
Python3 range() 函数原创 2018-08-15 13:18:57 · 48517 阅读 · 0 评论