在鸿蒙OS前端开发中,我们有时需要绘制简单的2D图形,例如线条、矩形、多边形等。对于这类需求,我们可以直接使用Canvas 2D API,而无需借助WebGL和着色器,从而简化开发流程。 1. 创建页…
鸿蒙OS 应用主窗口设置教程,获取窗口、设置属性和加载页面
在鸿蒙OS的Stage模型下,应用主窗口由UIAbility创建和管理。 应用主窗口 设置应用主窗口是构建鸿蒙OS 应用的基础步骤。通过设置主窗口,你可以: 本质上,你是在配置应用与用户交互的第一个界…
Python 通过网络收发日志事件,客户端使用 SocketHandler 发送日志,服务端使用 socketserver 模块监听
在大型应用或者分布式系统中,我们经常需要跨网络收集和处理日志信息。Python 标准库的 logging 模块提供了一种便捷的方式来实现这个功能。 使用场景 当需要将日志事件从一个应用程序(客户端)发…
Python 日志记录完整示例,显示日期 / 时间,并且写入日志到文件
日志是追踪软件运行过程中发生的事件的一种机制。通过在代码中添加日志记录语句,开发人员可以记录程序运行时的重要信息,例如程序执行状态、变量值、错误信息等。这些信息可以帮助开发人员调试程序、监控系统运行状…
Python 函数式编程入门示例,与过程式编程区别是什么
在日常编程中,我们大多使用 过程式编程,即一步一步地告诉计算机如何执行任务。但还有一种强大的编程范式叫做 函数式编程,它将问题分解成一系列函数来解决。 函数式编程的本质 以流水线工作为例,每个工人只负…
React Native 应用,useEffect 中更新了状态,界面却没有重新渲染的解决办法
很多开发者在使用 useState 和 useEffect 时会遇到一个问题:明明在 useEffect 中更新了状态,但是界面却没有重新渲染。这是因为 useEffect 中的更新操作发生在组件渲染…
Python 枚举类型 (enum) ,使用 @unique 装饰器,确保枚举值是唯一的
在 Python 中,枚举类型 (enum) 可以让我们定义一组命名常量。默认情况下,枚举允许多个名称对应同一个值。例如,你可以定义 NORTH = 1 和 UP = 1,它们都代表同一个值 1。 但…
Python 使用 GDB 调试 C API 扩展和 CPython 内部代码
在开发 CPython 扩展或者处理 CPython 内部用 C 语言编写的代码时,我们经常需要进行低层级的调试。这时,GDB 作为一款强大的调试器就成为了我们的首选工具。由于 GDB 本身并不理解 …
Python 描述器教程,自定义检查规则,实现数据验证
Python 的描述器,可以让我们在设置属性值时,加入一些自定义的检查规则。 什么是描述器? 描述器其实是一种特殊类型的对象,它可以控制我们如何访问类的属性。通过定义几个特殊的方法,比如 get()、…
使用 curses.wrapper() 简化 Python 终端程序调试
在编写与终端交互的 Python 程序时,经常需要处理复杂的屏幕控制、键盘输入以及异常处理。curses 库提供了一套工具来管理这些任务,但直接使用 curses 函数可能会比较繁琐,Python 提…