一图看懂 charset_normalizer 模块:字符集规范化,真正的第一个通用字符集检测器,资料整理+笔记(大全)

news2024/11/23 12:04:40

本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008

Alt

一图看懂 charset_normalizer 模块:字符集规范化,真正的第一个通用字符集检测器,资料整理+笔记(大全)

  • 🧊摘要
  • 🧊模块图
  • 🧊类关系图
  • 🧊模块全展开
    • ☘️【charset_normalizer】
    • 🔵统计
    • 🔵常量
      • 🌿list
    • 🔵模块
      • 🌿2 logging
      • 🌿3 charset_normalizer.assets
      • 🌿4 charset_normalizer.constant
      • 🌿5 charset_normalizer.md__mypyc
      • 🌿6 charset_normalizer.utils
      • 🌿7 charset_normalizer.md
      • 🌿8 charset_normalizer.models
      • 🌿9 charset_normalizer.cd
      • 🌿10 charset_normalizer.api
      • 🌿11 charset_normalizer.legacy
      • 🌿12 charset_normalizer.version
    • 🔵函数
      • 🌿13 from_bytes(sequences: bytes, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches
      • 🌿14 from_fp(fp: <class 'BinaryIO'>, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches
      • 🌿15 from_path(path: 'PathLike[Any]', steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches
      • 🌿16 detect(byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any) -> Dict[str, Union[str, float, NoneType]]
      • 🌿17 set_logging_handler(name: str = 'charset_normalizer', level: int = 20, format_string: str = '%(asctime)s | %(levelname)s | %(message)s') -> None
    • 🔵类
      • 🌿18 charset_normalizer.models.CharsetMatch
        • property
        • method
        • 18 add_submatch(self, other: "CharsetMatch") -> None:
        • 19 output(self, encoding: str = "utf_8") -> bytes:
      • 🌿19 charset_normalizer.models.CharsetMatches
        • method
        • 1 append(self, item: CharsetMatch) -> None:
        • 2 best(self) -> Optional["CharsetMatch"]:
        • 3 first(self) -> Optional["CharsetMatch"]:
    • ☘️【logging】
    • ☘️【charset_normalizer.assets】
    • ☘️【charset_normalizer.constant】
    • ☘️【charset_normalizer.md__mypyc】
    • ☘️【charset_normalizer.utils】
    • ☘️【charset_normalizer.md】
    • ☘️【charset_normalizer.models】
    • ☘️【charset_normalizer.cd】
    • ☘️【charset_normalizer.api】
    • ☘️【charset_normalizer.legacy】
    • ☘️【charset_normalizer.version】
    • ☘️【importlib】
    • ☘️【unicodedata】

🧊摘要

  • 全文介绍python的 charset_normalizer 模块(字符集规范化,真正的第一个通用字符集检测器)、函数、类及类的方法和属性。
  • 它通过代码抓取并经AI智能翻译和人工校对。
  • 是一部不可多得的权威字典类工具书。它是系列集的一部分。后续陆续发布、敬请关注。【原创:AhcaoZhu大侠】

🧊模块图

charset_normalizer-mod

charset_normalizer
	charset_normalizer.assets
	charset_normalizer.constant
	charset_normalizer.md__mypyc
	charset_normalizer.utils
		◆unicodedata
	charset_normalizer.md
	charset_normalizer.models
	charset_normalizer.cd
	charset_normalizer.api
	charset_normalizer.legacy
	charset_normalizer.version

🧊类关系图

charset_normalizer-class

◆object
	charset_normalizer.md.MessDetectorPlugin
		charset_normalizer.md.ArchaicUpperLowerPlugin
		charset_normalizer.md.CjkInvalidStopPlugin
		charset_normalizer.md.SuperWeirdWordPlugin
		charset_normalizer.md.SuspiciousDuplicateAccentPlugin
		charset_normalizer.md.SuspiciousRange
		charset_normalizer.md.TooManyAccentuatedPlugin
		charset_normalizer.md.TooManySymbolOrPunctuationPlugin
		charset_normalizer.md.UnprintablePlugin
	charset_normalizer.models.CharsetMatch
	charset_normalizer.models.CharsetMatches
	charset_normalizer.models.CliDetectionResult
	◆unicodedata.UCD

🧊模块全展开

☘️【charset_normalizer】

charset_normalizer, fullname=charset_normalizer, file=charset_normalizer_init_.py

字符集规范化,真正的第一个通用字符集检测器。
一个库,可以帮助您从未知的字符集编码中读取文本。
在chardet的激励下,这个方案试图通过采取新的方法来解决问题。
支持Python核心库提供编解码器的所有IANA字符集名称。
基本用法:
   >>> from charset_normalizer import from_bytes
   >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8'))
   >>> best_guess = results.best()
   >>> str(best_guess)
   'Bсеки човек има право на образование. Oбразованието!'
其他方法和用法也可用——请[参阅](https://github.com/Ousret/charset_normalizer)上的完整文档。
版权:(c) 2021由Ahmed TAHRI
:许可:麻省理工学院,参见许可了解更多细节。

🔵统计

序号类别数量
4str6
5tuple1
6list2
8dict1
9module11
10class2
11function5
13residual2
14system11
16all30

🔵常量

🌿list

1 VERSION [‘3’, ‘1’, ‘0’]

🔵模块

🌿2 logging

logging, fullname=logging, file=logging_init_.py

🌿3 charset_normalizer.assets

assets, fullname=charset_normalizer.assets, file=charset_normalizer\assets_init_.py

🌿4 charset_normalizer.constant

constant, fullname=charset_normalizer.constant, file=charset_normalizer\constant.py

🌿5 charset_normalizer.md__mypyc

md__mypyc, fullname=charset_normalizer.md__mypyc, file=charset_normalizer\md__mypyc.cp37-win_amd64.pyd

🌿6 charset_normalizer.utils

utils, fullname=charset_normalizer.utils, file=charset_normalizer\utils.py

🌿7 charset_normalizer.md

md, fullname=charset_normalizer.md, file=charset_normalizer\md.cp37-win_amd64.pyd

🌿8 charset_normalizer.models

models, fullname=charset_normalizer.models, file=charset_normalizer\models.py

🌿9 charset_normalizer.cd

cd, fullname=charset_normalizer.cd, file=charset_normalizer\cd.py

🌿10 charset_normalizer.api

api, fullname=charset_normalizer.api, file=charset_normalizer\api.py

🌿11 charset_normalizer.legacy

legacy, fullname=charset_normalizer.legacy, file=charset_normalizer\legacy.py

🌿12 charset_normalizer.version

version, fullname=charset_normalizer.version, file=charset_normalizer\version.py

公开版本

🔵函数

🌿13 from_bytes(sequences: bytes, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches

from_bytes(sequences: bytes, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches, module=charset_normalizer.api, line:33 at site-packages\charset_normalizer\api.py

给定一个原始字节序列,返回可用于呈现str对象的最佳字符集。
如果没有结果,这是一个强有力的指示源是二进制/不是文本。
默认情况下,该进程将提取5个512o的块来评估给定序列的混乱和一致性。并且会在20%的测量混乱后放弃特定的代码页。这些标准可以随意定制。
先发制人的行为并不能取代传统的检测工作流程,它优先考虑特定的代码页,但从不认为这是理所当然的。
可以提高性能。您可能希望将注意力集中在某些代码页或/而不是其他代码页上,为此使用 cp_isolation 和 cp_exclusion 排除。
除UTF-16、UTF-32外,此函数每次都将在有效载荷/序列中剥离SIG。
默认情况下,库不会设置除NullHandler之外的任何处理程序,如果您选择将'explain'开关设置为True,它将更改记录器配置以添加适合调试的StreamHandler。
可以手动设置自定义日志格式和处理程序。

🌿14 from_fp(fp: <class ‘BinaryIO’>, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches

from_fp(fp: <class ‘BinaryIO’>, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches, module=charset_normalizer.api, line:500 at site-packages\charset_normalizer\api.py

与 from_bytes 函数相同,但使用了一个已经准备好的文件指针。
不会关闭文件指针。

🌿15 from_path(path: ‘PathLike[Any]’, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches

from_path(path: ‘PathLike[Any]’, steps: int = 5, chunk_size: int = 512, threshold: float = 0.2, cp_isolation: Union[List[str], NoneType] = None, cp_exclusion: Union[List[str], NoneType] = None, preemptive_behaviour: bool = True, explain: bool = False, language_threshold: float = 0.1) -> charset_normalizer.models.CharsetMatches, module=charset_normalizer.api, line:528 at site-packages\charset_normalizer\api.py

与字节函数 from_bytes 相同,但多了一个步骤。
以二进制模式打开和读取给定的文件路径。
会引发IOError。

🌿16 detect(byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any) -> Dict[str, Union[str, float, NoneType]]

detect(byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any) -> Dict[str, Union[str, float, NoneType]], module=charset_normalizer.legacy, line:8 at site-packages\charset_normalizer\legacy.py

检测给定字节串的编码。
    它应该是向后兼容的。编码名称将尽可能匹配Chardet自己的书写。
    (不支持编码名称)此函数已弃用,应用于轻松迁移项目,请参阅文档以获取更多信息。
    没有移除的计划。
    :param byte_str:     要检查的字节序列。
    :param should_rename_legacy:  我们应该将legacy编码重命名为更现代的等效编码吗?

🌿17 set_logging_handler(name: str = ‘charset_normalizer’, level: int = 20, format_string: str = ‘%(asctime)s | %(levelname)s | %(message)s’) -> None

set_logging_handler(name: str = ‘charset_normalizer’, level: int = 20, format_string: str = ‘%(asctime)s | %(levelname)s | %(message)s’) -> None, module=charset_normalizer.utils, line:348 at site-packages\charset_normalizer\utils.py

🔵类

🌿18 charset_normalizer.models.CharsetMatch

CharsetMatch, charset_normalizer.models.CharsetMatch, module=charset_normalizer.models, line:10 at site-packages\charset_normalizer\models.py

property

1 alphabets=<property object at 0x000001C836607868> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
2 bom=<property object at 0x000001C8365ED048> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
3 byte_order_mark=<property object at 0x000001C8365ED0E8> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
4 chaos=<property object at 0x000001C8365ED2C8> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
5 coherence=<property object at 0x000001C8365ED368> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
6 could_be_from_charset=<property object at 0x000001C8366078B8> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
7 encoding=<property object at 0x000001C8365E7EA8> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
8 encoding_aliases=<property object at 0x000001C8365E7F48> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
9 fingerprint=<property object at 0x000001C836607908> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
10 has_submatch=<property object at 0x000001C836607818> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
11 language=<property object at 0x000001C8365ED228> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
12 languages=<property object at 0x000001C8365ED188> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
13 multi_byte_usage=<property object at 0x000001C8365E7D18> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
14 percent_chaos=<property object at 0x000001C8365ED408> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
15 percent_coherence=<property object at 0x000001C8365ED4A8> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
16 raw=<property object at 0x000001C8365ED548> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>
17 submatch=<property object at 0x000001C8366077C8> kind:property type:property class:<class ‘charset_normalizer.models.CharsetMatch’>

method

18 add_submatch(self, other: “CharsetMatch”) -> None:

kind=method class=CharsetMatch objtype=function line:77 at …\site-packages\charset_normalizer\models.py

19 output(self, encoding: str = “utf_8”) -> bytes:

kind=method class=CharsetMatch objtype=function line:203 at …\site-packages\charset_normalizer\models.py

方法使用给定的目标编码获取重新编码的字节有效负载。
默认为UTF-8。任何错误都将被编码器简单地忽略而不是替换。

🌿19 charset_normalizer.models.CharsetMatches

CharsetMatches, charset_normalizer.models.CharsetMatches, module=charset_normalizer.models, line:222 at site-packages\charset_normalizer\models.py

默认情况下,每个CharsetMatch项从最可能到最不可能排序的容器。
像一个列表(可迭代的),但不实现所有相关的方法。

method

1 append(self, item: CharsetMatch) -> None:

kind=method class=CharsetMatches objtype=function line:254 at …\site-packages\charset_normalizer\models.py

插入一个匹配项。将相应地插入以保持排序。
可以作为子匹配插入。

2 best(self) -> Optional[“CharsetMatch”]:

kind=method class=CharsetMatches objtype=function line:274 at …\site-packages\charset_normalizer\models.py

只需返回第一个匹配项。
严格等价于matches[0]。

3 first(self) -> Optional[“CharsetMatch”]:

kind=method class=CharsetMatches objtype=function line:282 at …\site-packages\charset_normalizer\models.py

冗余方法,调用best()方法。
因为BC的原因而保留。

☘️【logging】

logging, fullname=logging, file=logging_init_.py

☘️【charset_normalizer.assets】

assets, fullname=charset_normalizer.assets, file=charset_normalizer\assets_init_.py

☘️【charset_normalizer.constant】

constant, fullname=charset_normalizer.constant, file=charset_normalizer\constant.py

☘️【charset_normalizer.md__mypyc】

md__mypyc, fullname=charset_normalizer.md__mypyc, file=charset_normalizer\md__mypyc.cp37-win_amd64.pyd

☘️【charset_normalizer.utils】

utils, fullname=charset_normalizer.utils, file=charset_normalizer\utils.py

☘️【charset_normalizer.md】

md, fullname=charset_normalizer.md, file=charset_normalizer\md.cp37-win_amd64.pyd

☘️【charset_normalizer.models】

models, fullname=charset_normalizer.models, file=charset_normalizer\models.py

☘️【charset_normalizer.cd】

cd, fullname=charset_normalizer.cd, file=charset_normalizer\cd.py

☘️【charset_normalizer.api】

api, fullname=charset_normalizer.api, file=charset_normalizer\api.py

☘️【charset_normalizer.legacy】

legacy, fullname=charset_normalizer.legacy, file=charset_normalizer\legacy.py

☘️【charset_normalizer.version】

version, fullname=charset_normalizer.version, file=charset_normalizer\version.py

☘️【importlib】

importlib, fullname=importlib, file=importlib_init_.py

☘️【unicodedata】

unicodedata, fullname=unicodedata, file=unicodedata.pyd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/553008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI人工智能决策树分类器的原理、优缺点、应用场景和实现方法

决策树分类器&#xff08;Decision Tree Classifier&#xff09;是一种常用的机器学习算法&#xff0c;它被广泛应用于分类和回归问题中。在人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;领域中&#xff0c;决策树分类器是一种简单而有效的算法&…

DETR3D 论文学习

1. 解决了什么问题&#xff1f; 对于低成本自动驾驶系统&#xff0c;仅凭视觉信息进行 3D 目标检测是非常有挑战性的。目前的多相机 3D 目标检测方法有两类&#xff0c;一类直接对单目图像做预测&#xff0c;没有考虑 3D 场景的结构或传感器配置。这类方法需要多步后处理&…

tcpdump 抓包和记录、tshark 过滤抓包

目录 tcpdump 一、包名 二、可用参数 tcpdump -nn tcpdump -nn -i 网卡名 —— 指定显示的网卡 tcpdump -nn -i 网卡名 port 端口名 —— 指定显示的端口 tcpdump -nn -i 网卡名 not port 端口名 —— 排除指定的端口不显示 tcpdump -nn -i …

JavaWeb15 - web 应用常用功能 -文件上传下载

1. 基本介绍 文件的上传和下载&#xff0c;是常见的功能。后面项目就使用了文件上传下载。如果是传输大文件&#xff0c;一般用专门工具或者插件文件上传下载需要使用到两个包 , 需要导入说明: 2. 文件上传 2.1 文件上传的基本原理 ● 文件上传原理示意图, 一图胜千言 …

进程调度策略

1 先进先出 FIFO 2 最短任务优先 SJF https://blog.51cto.com/u_13064014/5079546?btotalstatistic

机器学习和大数据:如何利用机器学习算法分析和预测大数据

第一章&#xff1a;引言 近年来&#xff0c;随着科技的迅速发展和数据的爆炸式增长&#xff0c;大数据已经成为我们生活中无法忽视的一部分。大数据不仅包含着海量的信息&#xff0c;而且蕴含着无数的商机和挑战。然而&#xff0c;如何从这些海量的数据中提取有价值的信息并做…

【CANN训练营0基础赢满分秘籍】昇腾AI入门课(PyTorch)

1 昇腾AI全栈架构 昇腾计算产业是基于昇腾系列处理器和基础软件构睫的全栈Al计算基础设施&#xff0e;行业应用及服务&#xff0c;包括昇腾系列处理器、Atlas系列硬件、CANN (Compute Architecture for Neural Networks&#xff0c;异构计算架构》、Al计算框架、应用使能、全流…

LeetCode_Day4 | 好有难度的一个环形链表啊(在最后)!

LeetCode_链表 24. 两两交换链表中的节点1.题目描述2.虚拟头节点法1.思路2.代码实现 3.递归法1.思路2.代码实现 19. 删除链表的倒数第n个节点1.题目描述2.思路&#xff1a;双指针法3.代码实现 面试题 02.07. 链表相交1.题目描述2.思路3.代码实现 142. 环形链表 II1. 题目描述2.…

【SNAT和DNAT的原理与应用】

目录 一、SNAT原理与应用1、SNAT概述2、SNAT的应用环境3、进行SNAT转换后的情况 二、SNAT实验三、DNAT1、DNAT策略概述2、DNAT 实验 一、SNAT原理与应用 1、SNAT概述 SNAT 应用环境&#xff1a;局域网主机共享单个公网IP地址接入Internet&#xff08;私有不能早Internet中正常…

网络知识点之-静态路由

静态路由&#xff08;英语&#xff1a;Static routing&#xff09;是一种路由的方式&#xff0c;路由项&#xff08;routing entry&#xff09;由手动配置&#xff0c;而非动态决定。与动态路由不同&#xff0c;静态路由是固定的&#xff0c;不会改变&#xff0c;即使网络状况已…

进程控制(总)

目录 进程创建 fork函数初识&#xff1a; 写时拷贝&#xff1a; fork常规用法&#xff1a; fork调用失败的原因&#xff1a; 进程终止 进程退出场景&#xff1a; 进程常见退出方法&#xff1a; _exit函数 exit函数 return退出&#xff1a; 进程等待 进程等待的必…

UE5实现模型压平效果

文章目录 1.实现目标2.实现过程2.1 实现原理2.2 蓝图实现2.3 闪面问题与压平精度3.参考资料1.实现目标 模型压平功能是GIS系统中的一个常用功能,可以用于模型的替换,数据的对比等。本文在UE5中通过修改材质的方式实现,实现模型压平的功能,包括常规建模的StaticMesh,以及C…

2023年网络安全竞赛——Windows操作系统渗透测试Server2124

任务五:Windows操作系统渗透测试 任务环境说明: 服务器场景:Server2124(关闭链接)服务器场景操作系统:Windows(版本不详)通过本地PC中渗透测试平台Kali对服务器场景Server2124进行系统服务及版本扫描渗透测试,并将该操作显示结果中1433端口对应的服务版本信息作为Fla…

【C++ 学习 ⑥】- C++ 动态内存管理详解

目录 一、new 表达式和 delete 表达式的工作机理 二、operator new 和 operator delete 函数 2.1 - 标准库定义 2.2 - 重载 三、定位 new 表达式 四、常见面试题 4.1 - malloc/free 和 new/delete 的区别 4.2 - 内存泄漏 在 C 中&#xff0c;new 和 delete 既是关键字&…

Linux系统c语言socket实现TCP通信

socket通信用到的函数 int socket( int af, int type, int protocol); af&#xff1a;一个地址描述。仅支持AF_INET格式&#xff0c;也就是说ARPA Internet地址格式。 type&#xff1a;指定socket类型。新套接口的类型描述类型&#xff0c;如TCP&#xff08;SOCK_STREAM&#…

IMX6ULL裸机篇之DDR3参数配置分析

一. DDR3L 初始化简介 上一篇博文进行了 DDR参数的初始化&#xff0c;通过一个 execl表进行配置&#xff0c;生成脚本文件。文章网址如下&#xff1a; IMX6ULL裸机篇之DDR3初始化_凌雪舞的博客-CSDN博客 本文对 DDR的参数配置进行详细的说明。即对 "Register Configur…

前端026_菜单模块_新增功能

菜单模块_新增功能 1、需求分析2、新增组件实现3、列表引用新增组件4、关闭弹出窗口5、校验表单数据6、提交表单数据6.1、Mock 添加新增模拟接口6.2、Api 调用接口6.3、测试新增功能1、需求分析 菜单管理中有两处有 新增 按钮: 条件区域的是新增一级菜单,传递的参数是0。列表…

java多线程同步技术基础

说明 当程序中出现多个进程对同一资源进行操作时&#xff0c;因为对数据的操作非常密集&#xff0c;可能会对资源过度操作&#xff0c;这时就需要用到线程的同步技术。 以一个抢红包程序为例&#xff0c;红包数量为3个&#xff0c;开启5个线程来模拟抢红包行为&#xff0c;红…

[MAUI]在.NET MAUI中复刻苹果Cover Flow

文章目录 原理3D旋转平行变换 创建3D变换控件绘制封面图片应用3D旋转应用平行变换绘制倒影创建绑定属性 创建绑定数据创建布局计算位置计算3D旋转 创建动效项目地址 Cover Flow是iTunes和Finder中的一个视图选项&#xff0c;允许用户使用水平滚动的图像查看他们的音乐库或文件。…

使用Qt Creator编写窗体程序并打包发布

1、设置编辑器显示语言为中文(个人习惯) 2、新建窗体应用程序 3、简单修改一下代码 3.1 双击ui文件进入设计模式 3.2 从左侧组件中直接将需要使用的组件拖拽到窗体中 3.3 添加槽函数 选中按钮&#xff0c;右键菜单中 点击 转到槽&#xff0c;头文件和.cpp文件会自动添加对…