
问题集
搜集工作中遇到的疑难问题以及最后的解决办法
李星星BruceL
比较懒,懒得写简介
展开
-
Errno 10061: 在Python3的socket编程中客户端与服务端的连接被拒绝的错误分析
但是,重要的是要处理潜在的错误,如“ConnectionRefusedError: [Errno 10061] 连接被拒绝”,以确保平稳运行。服务器在特定端口上监听传入的连接。在这个示例中,服务器创建一个套接字,将其绑定到特定的地址和端口,并监听传入的连接。客户端创建一个套接字,连接到服务器的地址和端口,发送消息,接收响应并关闭连接。运行客户端代码时,如果服务器未运行或服务器的地址和端口不正确,您可能会遇到“ConnectionRefusedError: [Errno 10061] 连接被拒绝”错误。原创 2025-03-24 09:30:50 · 470 阅读 · 0 评论 -
Python3中将字符串转换成bytes
对于编码字符串,我认为 some_string.encode(encoding) 比 bytes(some_string, encoding) 更 Pythonic,因为它是最自文档化的——“用这种编码对这个字符串进行编码”比 bytes(some_string, encoding) 更清晰——当你使用构造函数时没有明确的动词。如果你使用 CPython 将 unicode 字符串传递给 bytes,它会调用 PyUnicode_AsEncodedString,这是 encode 的实现;原创 2025-03-21 09:56:42 · 239 阅读 · 0 评论 -
在Vim中,remap、noremap、nnoremap和vnoremap映射命令之间的区别
是一个选项,使映射递归工作。默认情况下,它是打开的,我建议你保持这个状态。对于这些映射集中的每一个,都有一个映射在正常、视觉、选择和操作模式下工作 (现在请记住 Vim 是一个模态编辑器。它有正常模式、视觉模式和其他模式。是各种映射命令的递归和非递归版本。),一个仅在正常模式下工作 (),一个在视觉模式下工作 (原创 2025-03-20 14:35:42 · 160 阅读 · 0 评论 -
Python:如何确定一个对象是否可迭代
Pythonic 编程风格通过检查对象的方法或属性签名来确定对象的类型,而不是通过与某些类型对象的显式关系(“如果看起来像鸭子并且叫声像鸭子,那么它必须是一只鸭子。通过强调接口而不是特定类型,设计良好的代码通过允许多态替换提高了其灵活性。相反,它通常采用 EAFP(Easier to Ask Forgiveness than Permission)编程风格。方法或在字符串的情况下检查。然而,这不会检查通过。原创 2025-03-20 14:35:24 · 232 阅读 · 0 评论 -
如何向批处理(Bat)文件传递参数
可能在语法上略有错误,但这是大致的想法。一个有用的提示是使用。原创 2025-03-19 09:30:38 · 220 阅读 · 0 评论 -
Git警告:“Pulling without specifying how to reconcile divergent branches is discouraged“
执行的是一个合并操作,这通常会创建一个合并提交。因此,默认情况下,从远程仓库拉取并不是一个无害的操作:它可能会创建一个新的提交 SHA 哈希值,这是之前不存在的。这种行为可能会让用户感到困惑,因为看起来应该是一个无害的下载操作实际上却以不可预测的方式改变了提交历史。这实际上会在远程分支之上进行提交,本地和远程都维护单个分支(与默认行为不同,后者涉及两个不同的分支——一个在本地,另一个在远程,并且为了合并这两个分支,会执行一次合并)。时,Git 只有在可以“快进”时才会更新你的分支,而不会创建新的提交。原创 2025-03-19 09:29:44 · 191 阅读 · 0 评论 -
Git:如果我已经开始了变基(Rebase)操作,如何将两个提交合并为一个
错误信息“无法在没有前一个提交的情况下进行压缩”意味着你可能尝试了“向下压缩”。Git 总是将较新的提交压缩到较旧的提交中,或者从交互式变基待办事项列表的角度来看,是将提交压缩到上一行的提交中。如果你将待办事项列表的第一行命令更改为压缩,这将始终产生此错误,因为第一个提交没有可以压缩的对象。原创 2025-03-18 09:08:46 · 351 阅读 · 0 评论 -
Python中类的混合(mixin)
以 Werkzeug 的请求和响应系统为例,可以说明第一种情况。区别很微妙,但在上述示例中,Mixin 类并不是设计成独立使用的。在更传统的多重继承中,例如。Mixin 是一种特殊的多重继承形式。也就是说,该类可能会被设计成能够独立工作。原创 2025-03-18 09:08:20 · 175 阅读 · 0 评论 -
在Python中创建GUID/UUID
uuid 模块提供了不可变的 UUID 对象(UUID 类)和函数 uuid1()、uuid3()、uuid4()、uuid5(),用于生成 RFC 4122 中指定的版本 1、3、4 和 5 的 UUID。如果你只需要一个唯一的 ID,你可能应该调用 uuid1() 或 uuid4()。UUID 版本 6、7 和 8 - 新的通用唯一标识符 (UUID) 格式,用于现代应用程序和数据库键。请注意,uuid1() 可能会损害隐私,因为它创建了一个包含计算机网络地址的 UUID。原创 2025-03-17 09:25:00 · 182 阅读 · 0 评论 -
Git列出包含给定提交的分支
也许你有一个来自补丁的提交 SHA,你以为已经应用了,或者你只是想检查你最喜欢的开源项目中减少内存使用量 75% 的提交是否已存在。来判断你在本地做的提交是否已在上游以不同的提交 ID 应用。例如,如果你通过邮件发送补丁给上游而不是直接推送或拉取提交时,就会发生这种情况。如果你想了解哪些分支包含一个“等效”的提交(即哪些分支已经 cherry-picked 了该提交),可以使用。仅列出包含指定提交(如果未指定,则为 HEAD)的分支。比较的是变化集而不是提交 ID(sha1),你可以用。原创 2025-03-17 09:23:59 · 174 阅读 · 0 评论 -
使用Unix工具解析JSON
有许多专门设计用于从命令行操作 JSON 的工具,这将比使用 Awk 更简单和可靠,例如jq你也可以使用系统上可能已经安装的工具来实现这一点,比如使用 Python 的json模块,这样可以避免额外的依赖,同时仍然享受正确解析 JSON 的好处。原创 2025-03-16 09:23:45 · 273 阅读 · 0 评论 -
‘typedef‘ 和 ‘using‘ 有什么区别
typedef 声明可以作为初始化语句使用,而(直到 C++23 之前)别名声明则不能。但是,在前两个非模板示例中,标准中是否还有其他微妙的差异?(+) 不包括别名模板的例子,这在原始帖子中已经提到过。(++) P2360R0(扩展 init-statement 以允许 alias-declaration)已被 CWG 批准,并且从 C++23 开始,typedef 声明和别名声明之间的这种不一致将被消除。原创 2025-03-16 09:23:01 · 124 阅读 · 0 评论 -
在Gradle中,implementation、api和compile的区别
在更新到 Android Studio 3.0 并创建新项目后,我注意到在文件中有一种新的方式来添加依赖项。以前使用的是compile,现在改为了;以前使用的是,现在改为了。它们之间的区别是什么?我应该使用哪一个?原创 2025-03-15 08:28:33 · 913 阅读 · 0 评论 -
Python获取在Flask请求中接收到的数据
在大多数常见情况下,文档描述了在请求期间。原创 2025-03-15 08:27:32 · 148 阅读 · 0 评论 -
zlib、gzip和zip之间有何关联?它们有什么共同点,哪些不同之处?
tar.gz 格式比 .zip 格式压缩得更好,因为 .tar 的压缩可以利用跨文件的冗余,特别是对于许多小文件。.tar.gz 是 Unix 上最常用的归档格式,由于其高度的可移植性,但在实际应用中还有更有效的压缩方法,所以你经常会看到 .tar.bz2 和 .tar.xz 归档文件。pigz 实用程序是 gzip 的并行实现,包括使用 zlib(压缩级别 1-9)或 zopfli(压缩级别 11)的选项,并通过将大文件的压缩拆分到多个处理器和核心上,减轻了使用 zopfli 的时间影响。原创 2025-03-14 09:29:28 · 853 阅读 · 0 评论 -
JAVA按属性对自定义对象的ArrayList进行排序
由于Date实现了Comparable,它具有一个类似于String的compareTo方法。因此,你的自定义Comparator方法必须返回一个int,所以你不能直接返回一个布尔值(就像你原本打算的那样)。原创 2025-03-14 09:29:10 · 198 阅读 · 0 评论 -
Python同时遍历两个列表
不是巨大的数据时,这没有问题。但如果它们都非常大,那么形成。及其类似函数可以接受任意数量的可迭代对象作为参数。返回一个元组的迭代器,类似于 Python 2 中的。将创建一个不必要的巨大临时变量,应该用。当较短的迭代器耗尽时,替换,它们返回的是迭代器而不是列表。直到两个迭代器都耗尽,则应使用。中较短的那个停止时也会停止。中任意一个耗尽时就会停止。在 Python 3 中,要获取元组列表,请使用。在 Python 2 中,会生成一个对应位置为。所有这些形式都是等价的。原创 2025-03-13 10:22:55 · 178 阅读 · 0 评论 -
batch中%~dp0 是什么意思
在命令行中调用 可以获取关于此语法的帮助(该语法不仅可以在 循环中使用,在其他地方也可以使用,这里只是提供帮助信息的地方)。此外,对 变量引用的替换功能也得到了增强。现在可以使用以下可选语法:这些修饰符可以组合使用以获得复合结果:在上述示例中, 和 可以替换为其他有效值。 语法由有效的 变量名终止。选择大写的变量名如 可使其更易读,并避免与不区分大小写的修饰符混淆。你可以使用不同的字母,例如 表示“完整路径名”, 表示驱动器字母, 表示路径,它们可以组合使用。 是每个序列的开始,数字 表原创 2025-03-13 10:22:35 · 212 阅读 · 0 评论 -
Python中int的最大值和最小值
然而,你可能实际上是在寻找关于当前解释器的字长(word size)的信息,在大多数情况下这与机器的字长相同。该信息在 Python 3 中仍然可以通过。Python 在超过这个值时会无缝地从普通整数切换到长整数。因此,大多数时候你不需要知道这个值。获得,它表示一个有符号整数可以表示的最大值。等价地,它也是最大可能列表或内存序列的大小。在 Python 3 中,这个问题不适用。通常,一个无符号整数可以表示的最大值将是。在 Python 2 中,普通。计算最小值,如文档中所示。,而一个字中的位数将是。原创 2025-03-12 09:51:06 · 281 阅读 · 0 评论 -
Git:使用 Git 时如何解决权限被拒绝(公钥)错误
我刚刚安装了git。原创 2025-03-12 09:50:49 · 248 阅读 · 0 评论 -
c++局部变量的内存可以在其作用域之外访问吗
我有以下代码。这段代码运行时没有出现运行时异常!输出结果是58。这怎么可能?局部变量的内存不是在函数外部无法访问吗?原创 2025-03-11 09:31:11 · 528 阅读 · 0 评论 -
如何删除旧的和未使用的 Docker 镜像
Docker 1.13版本通过PR 26108和提交86de7c0引入了一些新命令,帮助用户更直观地了解Docker守护进程数据在磁盘上占用的空间,并方便清理“不必要的”多余数据。命令会删除所有未被引用的数据(包括容器、网络和镜像)。你可以使用--volumes选项来删除所有未使用的卷,使用-a选项来删除所有未使用的镜像(不仅仅是悬空的镜像)。对于未使用的镜像,可以使用(用于删除悬空和未使用的镜像)。警告:“未使用”意味着“没有被任何容器引用的镜像”,在使用-a选项前请谨慎。原创 2025-03-11 09:30:42 · 412 阅读 · 0 评论 -
跳过 Git 提交钩子
来自git commit这个选项会跳过pre-commit和commit-msg钩子。参见。-n对某些命令可能有不同的作用。例如,实际上是一个预演推送。只有会跳过钩子。注意:Git 2.14.x/2.15 改进了的行为:请参阅提交680ee55(2017年8月14日,由 Kevin Willford 提交)。(由 Junio C Hamano 合并到c3e034f,2017年8月23日)原创 2025-03-10 10:08:49 · 772 阅读 · 0 评论 -
C++ 中可以从一个构造函数调用另一个构造函数(进行构造函数链式调用)吗
在C++中是否有办法实现这一点?原创 2025-03-10 10:08:25 · 136 阅读 · 0 评论 -
c++类型名后的括号在使用new时是否有区别
操作符返回的内存会被初始化,有时则不会,这取决于你创建的类型是否是 POD(普通旧数据),或者它是否是一个包含 POD 成员并使用编译器生成的默认构造函数的类。我们仔细讨论一下,因为这些差异实际上可能会影响代码的行为。这是 C++ 中一个容易让人抓狂的角落。在构造对象时,有时你需要/想要括号,有时绝对不能有它们,而有时则无关紧要。的情况,在 C++98 和 C++03 之间也存在行为上的差异。之间存在差异,因为 A 是一个 POD 类型。因此,在所有版本的 C++ 中,原创 2025-03-09 10:43:10 · 280 阅读 · 0 评论 -
使用Python Requests库发送POST请求并传递JSON数据
我需要将 JSON 从客户端发送到服务器。我使用的是 Python 2.7.1 和 simplejson。客户端使用 Requests,服务器是 CherryPy。我可以从服务器获取硬编码的 JSON(未显示代码),但当我尝试向服务器 POST JSON 时,我收到“400 Bad Request”。方法发送 JSON 数据。会自动将其转换为 JSON 格式,并设置正确的。这使得服务器能够正确解析接收到的数据。从版本 2.4.2 开始,可以使用。参数(它接受一个字典)而不是。这段代码展示了如何使用。原创 2025-03-09 10:42:54 · 263 阅读 · 0 评论 -
解决Git提示“Please commit your changes or stash them before you merge”
然后再次尝试,但还是收到同样的消息。我猜测 w3tc 在服务器上的配置文件中做了某些更改。我不在乎是本地副本还是远程副本最终留在服务器上(我认为远程副本更好),我只是希望能够合并我的其他更改(插件更新)无法在有本地修改的情况下进行合并。Git 保护你不会丢失可能重要的更改。暂存操作类似于一个栈,你可以将更改推入其中,并以相反的顺序弹出它们。原创 2025-03-08 10:20:40 · 668 阅读 · 0 评论 -
Python中模拟do-while循环
我需要在Python程序中模拟一个do-while循环。你为什么要使用do-while循环来打印列表中的内容?为什么不直接使用以下代码呢?这看起来像是你想要的东西吗?所以你有一个行的列表,并且你想不断迭代它吗?异常并跳出while循环,我应该怎么做?原创 2025-03-08 10:20:13 · 136 阅读 · 0 评论 -
C++11中T&&(双&符号)
c++中双(&&),例如T&& var是什么意思?它声明了一个右值引用(标准提案文档)。这里有一个关于右值引用的介绍。这里有一篇由微软标准库开发人员撰写的关于右值引用的精彩深入分析。链接中的MSDN文章(“右值引用:C++0x在VC10中的特性,第2部分”)对右值引用有非常清晰的介绍,但它对右值引用的一些陈述在C++11草案标准中是正确的,但在最终标准中并不正确!具体来说,它在多个地方说右值引用可以绑定到左值上,这曾经是真的,但后来改变了(例如,在不再在GCC中编译)原创 2025-03-08 10:19:40 · 784 阅读 · 0 评论 -
Objective-C中的typedef enum
被声明为全局命名空间中的整数常量。由于没有指定具体的值,它们被分配从 0 开始的连续整数,因此。在 C 和 Objective-C(但不是 C++)中,任何对它的引用都必须用。实际上只是一个整数类型,应该只用于声明变量,这些变量持有声明中列出的一个值(即。被声明为该匿名枚举的 typedef,以及三个名称。在这里声明了三件事:一个匿名枚举类型被声明,变量赋另一个值,因此在读取枚举值时要小心。是一个匿名枚举的 typedef 名称。最后,如果我们不需要能够使用。现在,在这个例子中,我们声明。原创 2025-03-07 10:13:39 · 115 阅读 · 0 评论 -
在Linux/Unix上永久设置$PATH
有多种方法可以实现它。实际的解决方案取决于目的。变量值通常存储在赋值列表或在系统或用户会话开始时运行的 shell 脚本中。如果是 shell 脚本,必须使用特定的 shell 语法和export或set命令。原创 2025-03-07 10:13:09 · 329 阅读 · 0 评论 -
c++的定义(definition)和声明(declaration)之间的区别
如果你忘记定义某个已被声明和引用的东西,那么链接器不知道要链接到什么,并会抱怨缺少符号。如果你定义了某物超过一次,那么链接器不知道应该链接到哪个定义,并会抱怨重复符号。声明是编译器接受对该标识符的引用所需的内容。它是链接器为了将引用链接到这些实体所需要的内容。(换句话说,“前向声明”是一个误称,因为在 C++ 中没有其他形式的类声明。由于关于类声明与类定义在 C++ 中的区别争论不断,我将在这里引用 C++ 标准的一段话。声明是一个定义,除非它 […] 是一个类名声明 […定义可以用在声明的地方。原创 2025-03-07 10:10:20 · 159 阅读 · 0 评论 -
在 C++ 标识符中使用下划线的规则
规则在 C++11 中没有改变:此外,std命名空间中的所有内容都是保留的。(不过你可以添加模板特化。原创 2025-03-06 10:16:27 · 677 阅读 · 0 评论 -
Python的urllib、urllib2、urllib3 和 requests 模块之间有什么区别
很容易使用,代码量不多且功能强大,我以前也是这么想的。此外,它还内置了 JSON 解码器(虽然我知道。包实在是太好用了,简洁到每个人都应该使用它。强烈推荐使用 Python 的。如果你用过其他语言,你可能认为。原创 2025-03-06 10:11:50 · 200 阅读 · 0 评论 -
c++的序列点是什么,与未定义行为有什么关系
标准说法:在执行序列中某些特定点称为序列点,在这些点上,所有先前评估的副作用应已完成,并且后续评估的任何副作用不应发生。表达式的求值会产生某种结果,如果除此之外还改变了执行环境的状态,则称该表达式(其求值)有一些副作用。// 其中y也是一个整数除了初始化操作外,由于++运算符的副作用,y的值也会改变。到目前为止都很好。接下来讲序列点。comp.lang.c作者Steve Summit给出的序列点的另一种定义:序列点是一个时间点,在此时间点上尘埃落定,所有已看到的副作用都保证完成。原创 2025-03-06 10:09:00 · 766 阅读 · 0 评论 -
如何处理 Docker 中的持久化存储(例如数据库)
如何处理 Docker 容器的持久化存储?在我看来,这种方法有一个缺点,即我绝对不能(意外地)删除容器 “c0dbc34fd631”。另一种方法是将主机卷 “-v” 挂载到容器中,但是容器内的用户 ID 不一定与主机上的用户 ID 匹配,这可能会导致权限混乱。注意:除了使用,你还可以使用,其中是你为数据专用容器指定的名称,例如。原创 2025-03-06 09:58:32 · 418 阅读 · 0 评论 -
从Git的特定版本中检索单个文件
参见 commit 3214594、commit 7bcf341(2016 年 9 月 9 日)、commit b9e62f6 和 commit 16dcc29(2016 年 8 月 24 日),由 Johannes Schindelin (dscho) 提交。注意:“git cat-file --textconv” 最近(2017 年)开始出现段错误,已在 Git 2.15(2017 年第四季度)中修复。注意:自 Git 2.11(2016 年第四季度)起,可以对。提示:重要的是要记住,在使用。原创 2025-03-05 11:11:29 · 352 阅读 · 0 评论 -
git error: failed to push some refs to remote
(以下假设github.com本身没有宕机,正如eri0o在评论中指出的那样:请访问www.githubstatus.com以确认)有关更完整的示例,请参阅《Git Pocket Book》第六章中的“Pull with rebase”。(注:从2020年10月开始,任何新创建的仓库默认分支为。(注意:从Git 2.27(2020年Q2)开始,也适用于你的常规拉取操作,无需进行rebase))之上重播(即–rebase部分)你的本地提交。我现在无法推送,尽管我昨天可以做到。这样,你就可以在最新更新的。原创 2025-03-05 11:10:46 · 160 阅读 · 0 评论 -
C++ 仿函数及其用途是什么
你也可以用普通的函数指针来做同样的事情,但是正如我上面所说的,函数对象可以被“定制”,因为它们包含状态,这使它们更加灵活(如果我想使用函数指针,我必须编写一个函数,该函数正好将其参数加1。函数对象是通用的,可以添加你在初始化时设置的任何值),并且它们也有可能更高效。函数对象有几个很好的特性。上面的例子创建了一个函数,它可以将42加到你给它的任何值上。如果我传递的是一个函数指针,编译器不能立即看到它指向哪个函数,因此除非它执行一些相当复杂的全局优化,否则它必须在运行时解引用指针,然后进行调用。原创 2025-03-05 11:06:53 · 165 阅读 · 0 评论 -
计算RSA密钥指纹
非常相似,但会列出添加到代理中的密钥的指纹。(OS X 用户请注意,通过 Keychain 实现的无密码 SSH 并不等同于使用。(如果你想查看其他用户的家目录,你需要具有 root 权限或使用 sudo。运行以下命令以获取 SSH 密钥的 SHA256 指纹(表示“列出”而不是创建新密钥,原创 2025-03-05 10:38:51 · 189 阅读 · 0 评论