-
Mac 下如何打包 Playwright 程序
所属栏目:[语言] 日期:2021-12-11 热度:175
经常有朋友找我写个浏览器自动化工具,通常情况下我都是在 Windows 下打包,使用的方法就是 最简单的方式发布你的Python应用,然而也有朋友问我能否做一个 mac 版本,于是我就捣腾了一下,顺利完成,今天就分享下具体的做法。 使用 py2app 我首先采用了 py2[详细]
-
Python 中弱引用的神奇用法与原理探析
所属栏目:[语言] 日期:2021-12-11 热度:182
开始讨论弱引用( weakref )之前,我们先来看看什么是弱引用?它到底有什么作用? 假设我们有一个多线程程序,并发处理应用数据: # 占用大量资源,创建销毁成本很高 class Data: def __init__(self, key): pass 应用数据 Data 由一个 key 唯一标识,同一[详细]
-
Python实现图像的全景拼接
所属栏目:[语言] 日期:2021-12-11 热度:57
基本介绍 图像的全景拼接,即缝合两张具有重叠区域的图来创建一张全景图。其中用到了计算机视觉和图像处理技术有:关键点特征检测、局部不变特征、关键特征点匹配、RANSAC(Random Sample Consensus,随机采样一致性)和透视变形。 具体步骤 (1)检测左右两[详细]
-
Go 通过 io.Writer 将 JPEG 转为 JFIF
所属栏目:[语言] 日期:2021-12-11 热度:136
Go 的标准库可让你对 JPEG 图像进行编码。在 One of these JPEGs is not like the other[1] 一文中,Ben Cox 指出某些硬件不会解码这些 JPEG 图像,除非它们被增强为 JFIF 图像。JFIF 代表JPEG 文件交换格式,在概念上是原始 JPEG 格式的次要版本。 硬件缺[详细]
-
一篇学会 C# 集合类型
所属栏目:[语言] 日期:2021-12-11 热度:83
对于许多应用程序,你会想要创建和管理相关对象的组。有两种方法对对象进行分组:通过创建对象的数组,以及通过创建对象的集合。 数组最适用于创建和使用固定数量的强类型化对象。 集合提供更灵活的方式来使用对象组。与数组不同,你使用的对象组随着应用程[详细]
-
Python协程知多少
所属栏目:[语言] 日期:2021-12-11 热度:157
从概念上来说,我们都知道多进程和多线程,而协程其实是在单线程中实现多并发。从句法上看,协程与生成器类似,都是定义体中包含yield关键字的函数。区别在于协程的yield通常出现在表达式的右边:datum = yield。这一下就让初学者瞬间觉得yield关键字不香了[详细]
-
提高 Python代码的可读性,你需要知道的十个技巧
所属栏目:[语言] 日期:2021-12-11 热度:76
1. 字符串反转 字符串反转有很多方法,咱们再这里介绍两种:一种是切片,一种是python字符串的reversed方法。 # -!- coding: utf-8 -!- string = hello world # 方法1 new_str = string[::-1] ic(new_str) # 方法二 new_str2 = .join(reversed(string)) ic([详细]
-
基于Python创建语音识别控制系统
所属栏目:[语言] 日期:2021-12-11 热度:200
这篇文章主要介绍了通过Python实现创建语音识别控制系统,能利用语音识别识别说出来的文字,根据文字的内容来控制图形移动,感兴趣的同学可以关注一下 利用语音识别识别说出来的文字,根据文字的内容来控制图形移动,例如说向上,识别出文字后,画布上的图[详细]
-
EasyC++,构造函数
所属栏目:[语言] 日期:2021-12-11 热度:129
构造函数 我们定义了类之后,在使用之前,往往还需要对类进行初始化。这篇介绍的就是对类进行初始化的方法。 像是结构体,我们可以使用列表初始化的方法进行初始化: struct Thing { char *pn; int m; }; Thing th = {hello, 23}; 但类不行,因为结构体当中[详细]
-
Go 为什么不支持类和继承?
所属栏目:[语言] 日期:2021-12-11 热度:118
这门编程语言里没有类(class)、继承(extends),没法一把搜了,面试问啥面向对象(OOP)? 今天煎鱼就带大家一起来了解这之中的思考,Go 真的不支持吗? 类和继承 类是什么 类(class)在面向对象编程中是一种面向对象计算机编程语言的构造,是创建对象的蓝图,描[详细]
-
那些用Go实现的分布式事务框架
所属栏目:[语言] 日期:2021-12-11 热度:109
开篇 不知不觉竟然一个月没更新了,人一旦懒下来只会越来越懒。 最近对分布式事务产生了一些兴趣,查阅了一些文章以及论文。这篇文章主要介绍我看的两个项目,不涉及一些理论知识。 阿里开源版本的Seata,主要看了Go实现的seata-golang(落后java版) 以及前[详细]
-
Java操作PDF文件,竟然如此简单
所属栏目:[语言] 日期:2021-12-11 热度:156
maven 依赖 使用 iText 的时候需要用 maven 依赖如下: dependency groupIdcom.itextpdf/groupId artifactIditext7-core/artifactId version7.2.0/version typepom/type /dependency 简单实例 建立 PDF 需要 4 个步骤: 创建 一个 PdfWriter,用于定义 pdf[详细]
-
Go 1.18 中的 Any 是啥?
所属栏目:[语言] 日期:2021-12-06 热度:58
Go 1.18 因为泛型引入 any,这实际上是 interface{} 的别名: type any = interface{} 以下代码虽然不是泛型,但用 Go 1.18 可以正常运行,证明 any 和 interface{} 是一样的:(这里可以在线运行:https://gotipplay.golang.org/p/dPeNhe-7nkA) package mai[详细]
-
11月份Github上Java开源项目排行名单
所属栏目:[语言] 日期:2021-12-06 热度:104
QuestDB是一个高性能、开源的SQL数据库,适用于金融服务、物联网、机器学习 、DevOps和可观测性应用。它拥有支持PostgreSQL线协议的端点,使用InfluxDB线协议的模式无关的高吞吐数据获取方式,以及用于查询、批量导入和导出的REST API。QuestDB实现了ANSI[详细]
-
长篇长论Python生成器
所属栏目:[语言] 日期:2021-12-06 热度:132
ython生成器是什么 一句话解释:包含了yield关键字的函数就是生成器,它的返回值是一个生成器对象。我简单画了个示意图: yield相当于return。 函数遇到yield就暂停,保存当前信息,返回yield的值。 在下次执行next()时,从当前位置继续执行。 比较有意思的[详细]
-
敏感词过滤算法达成
所属栏目:[语言] 日期:2021-12-06 热度:137
敏感词、文字过滤是一个网站必不可少的功能,如何设计一个好的、高效的过滤算法是非常有必要的。 在实现文字过滤的算法中,DFA是唯一比较好的实现算法。DFA即Deterministic Finite Automaton,也就是确定有穷自动机,它是是通过event和当前的state得到下一[详细]
-
Python远程连接服务器用它就可以了
所属栏目:[语言] 日期:2021-12-06 热度:176
使用fabric玩转远程服务器管理 fabric基于强大的paramiko、invoke等库,构建出一整套简单易用的API,使得我们使用简洁的语句就可以应付常见的各种远程服务器操作,使用pip install fabric完成安装,本文演示对应版本为2.6。 1. 连接到远程服务器并执行终端[详细]
-
Go泛型系列 Maps 包有哪些?
所属栏目:[语言] 日期:2021-12-06 热度:122
真实的场景 不少新手,对 map 的输出是随机的有迷惑,曾经,map 的输出顺序是固定的,但官方怕大家依赖这个顺序,之后故意让输出顺序不固定。 但实际场景中,会有按某种顺序输出 map 的需求,怎么办呢?这需要对 map 的 key 进行排序,伪代码如下: for k :=[详细]
-
Java9异步编程-反应式流运用
所属栏目:[语言] 日期:2021-12-06 热度:180
Reactive API总览 要构建一个流,主要使用三个抽象,并将它们组合成异步处理逻辑。 每个流都需要处理由Publisher实例发布给它的事件;发布者有一个subscribe()的方法。 如果某个订阅者希望接收发布者发布的事件,则需要使用subscribe()订阅发布者。 消息的接[详细]
-
.NET Core怎样配置TLS Cipher 套件 ?
所属栏目:[语言] 日期:2021-12-06 热度:134
.NET Core Cipher(套件)配置 如果没有项目上的苛刻要求,我断然也就无法在此方面展开研究和实践 本文具以.NET 5为例,只不过针对.NET Core 3或3.1通过工具扫描出的协议套件结果略有所差异,但不影响我们对安全套件的配置,我们使用OpenSSL生成自签名证书,[详细]
-
EasyC++,名称空间其他特征
所属栏目:[语言] 日期:2021-12-06 热度:168
名称空间其他特性 嵌套 我们可以将名称空间声明进行嵌套: namespace elements { namespace fire { int flame; ... } float water; } 我们观察一下可以发现这里的flame位于elements::fire当中,所以当我们使用解析运算符使用它的时候写成:elements::fire::[详细]
-
编写无Bug Java代码的几个优秀实行
所属栏目:[语言] 日期:2021-12-06 热度:129
在编写代码时,开发人员努力以最少的复杂性和最多的功能编写没有bug的代码。无论你是初学者还是专家,都应该遵循一些规则,以便为客户机获得最佳代码。下面是无bug代码编写的规则。 规则 :不需要依赖于初始化 在Java中,开发人员总是依赖构造函数的使用来[详细]
-
为什么C和C++难以被替代
所属栏目:[语言] 日期:2021-12-06 热度:196
这是为什么呢?难道没有其他语言能取代C/C++吗? 我个人认为确实很难有。即使技术上有了(如rust)也很难真的流行起来,在市场使用上打败C/C++。原因有这么几个。 一个重要原因就是前两天提到的技术惯性问题。人们总是倾向于使用自己熟悉的技术,总是在不得不改[详细]
-
new[]和delete[]必定要配对使用吗?
所属栏目:[语言] 日期:2021-12-06 热度:121
在平时资料中,我们常看到:new和delete,new[]和delete[]一定要配对使用! 也有人说:有时候不配对使用也不会出现问题。也许你也是只知其然,不知其所以然,然而我也有点懵了_(3」)_ 那就研究下这个问题: 首先,看下这段配对使用代码: #include stdlib.h[详细]
-
选择 Go API 框架时要顾虑的四件事
所属栏目:[语言] 日期:2021-12-06 热度:81
用 Go 编写 API 服务,许多语言新手问的第一件事是:我应该使用哪个框架?。 那些来自 Ruby 或 Python 等语言的人可能熟悉大多数开发人员(例如 Rails、Django 或 Flask)使用的单一 Web 框架。Go 有点不同,因为实际上没有一个框架是社区中最受欢迎的。虽然有[详细]