发布

极客起源

专栏成员
160
文章
241418
阅读量
28
订阅数
【Python】动态与静态的较量:深入探讨Python的动态类型机制与类型提示的应用
Python的动态类型系统是其灵活性和广泛适用性的重要因素,但在大型项目中,类型安全问题也可能带来隐患和复杂性。本文深入解析Python的动态类型机制,探讨类型提示(type hints)如何改善代码的可读性与可维护性,并详细介绍静态类型检查工具——mypy。在大量示例代码中,我们将展示如何通过类型提示减少错误,提升开发效率,确保项目在开发过程中的安全性与稳定性。同时,本文将通过代码片段与中文注释,帮助读者理解如何在Python项目中使用mypy实现动态与静态类型的平衡。这种结合不仅能够减少运行时错误,还能提升团队协作和代码可读性,使Python在大型项目中更具优势。让我们一同探索如何在Python的动态类型世界中,以更“静态”的方式实现灵活与安全的结合。
蒙娜丽宁
2025-01-01
910
Java高效编程(2):面对多个构造参数时考虑使用构建器模式
在Java编程中,静态工厂和构造函数都存在一个局限性:当可选参数数量较多时,它们的扩展性较差。以表示食品包装上营养成分标签的类为例,这些标签包含几个必需字段——如份量大小、每容器的份数和每份的卡路里——以及超过二十个可选字段,例如总脂肪、饱和脂肪、反式脂肪、胆固醇、钠等。大多数产品只有少数这些可选字段的值不为零。
蒙娜丽宁
2024-11-23
710
Java高效编程(1):使用静态工厂方法替代构造函数
在Java编程中,传统上,类允许客户端获取实例的方式是提供一个公共构造函数。然而,还有一种重要的技术,应该成为每个程序员工具箱中的一部分,那就是使用公共的静态工厂方法。静态工厂方法是一个静态方法,返回类的实例。这种方法为我们提供了比构造函数更灵活和可读的创建对象的方式。下面是一个来自 Boolean(布尔值的包装类)的简单示例,展示了如何将布尔基本类型值转换为 Boolean 对象引用:
蒙娜丽宁
2024-11-23
950
深入掌握 Go 语言中的数值类型与循环技巧
Go 语言原生支持整数、浮点数以及复数。以下部分将详细介绍 Go 支持的各种数值类型。
蒙娜丽宁
2024-11-23
840
深入理解 Go 中的 defer、panic 、日志管理与WebAssembly
在 Go 语言中,defer 关键字用于推迟某个函数的执行,直到其所在的外层函数即将返回时才执行。这在文件输入输出操作中非常有用,因为它允许你在打开文件后直接将关闭文件的操作放在附近,从而避免忘记关闭文件。defer 可以让你的代码更加简洁、可读。虽然在后续章节中我们将讨论 defer 在文件操作中的应用,本文先介绍 defer 在其他场景中的两种用法。
蒙娜丽宁
2024-11-23
720
在Go语言中调用C代码的技巧
虽然 Go 语言旨在提升编程体验,减少 C 语言的复杂性,但 C 语言依然是非常强大的编程语言,并且在很多情况下依然十分有用。比如在使用数据库或设备驱动程序时,它们可能是用 C 语言编写的。这意味着在某些情况下,你可能需要在 Go 项目中调用 C 代码。
蒙娜丽宁
2024-11-23
710
深入探索 Go 语言的编译器与垃圾回收机制
Go 编译器是通过 go 工具执行的,这个工具的功能不仅仅是生成可执行文件。你可以使用 go tool compile 命令来编译一个 Go 源文件。这个操作将生成一个目标文件,也就是 .o 后缀的文件。以下是在 macOS Mojave 系统上执行的命令和结果展示:
蒙娜丽宁
2024-11-23
810
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界
随着编程语言的不断演进,Python已经成为开发者们心目中的“瑞士军刀”。它的简洁易用、强大的库支持、广泛的应用领域,让它在人工智能、数据分析、网络爬虫、自动化办公等领域展现了无与伦比的优势。那么,如何深入掌握Python这门语言并用它解决实际问题呢?这正是《奇妙的Python——神奇代码漫游之旅》一书的核心目标。
蒙娜丽宁
2024-11-23
1240
Go语言的编程规则和秘籍
Go语言有一些严格的编码规则,这些规则旨在帮助你避免常见的错误和漏洞,同时也使你的代码更易于被Go社区理解。本文将介绍其中两条重要的规则。
蒙娜丽宁
2024-11-23
570
Go语言的前世今生与未来展望
Go语言诞生于2009年底,是谷歌内部的一个实验性项目。它从一开始就受到C、Pascal、Alef和Oberon等多种编程语言的启发,由Robert Griesemer、Ken Thompson和Rob Pike三位资深程序员共同打造。作为一门现代的通用编程语言,Go迅速获得了广泛关注,其开放源码的特性更是吸引了全球开发者的参与。
蒙娜丽宁
2024-11-23
1210
告诉你个秘密,Python也能控制回收站
本文介绍了如何用Python控制回收站(macOS成为废纸篓),主要内容包括删除回收站中的文件、清空回收站中的文件和恢复回收站中的文件。由于Windows、macOS和Linux操作回收站的API和方式不同,所以本节会分别介绍这3种操作系统操作回收站的API和背后的原理,并通过相应的API将这3个操作系统平台用于操作回收站的API放到一个Python脚本文件中,所以本文提供的Python代码都是跨平台的。
蒙娜丽宁
2024-05-27
3410
ChatGPT自动化编程:三分钟用Tkinter搞定计算器
本文结合ChatGPT和GitHub Copilot是一个Tkinter版的计算器程序。Tkinter是Python的内置GUI库,不需要单独安装。 计算器程序有很多种类,本节会实现一个基本的计算器程序,在窗口上包含0到9一共10个数字按钮,以及“+”、“-”、“*”、“=”、“.”和“=”一共6个按钮,加一起一共16个按钮,正好是4行4列。具体的样式可以参考系统自身带的计算机程序,如图1就是macOS带的计算器程序的主界面。计算器的功能主要是单击除了“=”按钮外的其他按钮,会将按钮文本追加到计算器上方的文本输入框中,点击“=”按钮,会动态计算文本输入框中的表达式,双击文本输入框,会清空文本。
蒙娜丽宁
2024-01-22
2170
还在用收费的GitHub Copilot AI助手吗?out了,国产的CodeGeeX完全可以替代,而且完全免费!
如果需要使用ChatGPT Plus账号,建议使用虚拟信用卡,推荐使用https://bewildcard.com,支持美国本地环境,升级ChatGPT Plus、OpenAI API、midjourney等可100%成功,输入推荐码SUCCESS,开卡费88折。使用https://bewildcard.com/i/SUCCESS可直接输入推荐码! 作者:蒙娜丽宁 https://www.bilibili.com/read/cv27329337/?jump_opus=1
蒙娜丽宁
2023-12-04
2.3K0
【计算机视觉】使用OpenCV处理色彩空间(Python版)
GRAY色彩空间通道指的是灰度图像,灰度图像的通常只有1个,值范围是[0, 255],一共256个灰度级别。其中0表示纯黑色,255表示纯白色。0~255之间的数值表示不同的亮度(即色彩的深浅程度)的深灰色或浅灰色。因此,一副灰度图能展示丰富的细节信息,如图1所示。
蒙娜丽宁
2023-03-08
2.2K0
【计算机视觉】OpenCV图像处理基础
OpenCV是目前最流行的计算机视觉处理库之一,受到了计算机视觉领域众多研究人员的喜爱。计算机视觉是一门研究如何让机器“看”的科学,即用计算机来模拟人的视觉机理,用摄像头代替人眼对目标进行识别、跟踪和测量等,通过处理视觉信息获得更深层次的信息。例如,通过拍摄环绕建筑物一周的视频,利用三维重建技术重建建筑物三维模型;通过放置在车辆上方的摄像头拍摄前方场景,推断车辆能否顺利通过前方区域等决策信息。对于人类来说,通过视觉获取环境信息是一件非常容易的事情,因此有人会误认为实现计算机视觉是一件非常容易的事情。但事实不是这样的,因为计算机视觉是一个逆问题,通过观测到的信息恢复被观测物体或环境的信息,在这个过程中会缺失部分信息,造成信息不足,增加问题的复杂性。例如,当通过单个摄像头拍摄场景时,因为失去了距离信息,所以常会出现图像中“人比楼房高”的现象。因此,计算机视觉领域的研究还有很长的路要走。
蒙娜丽宁
2023-03-08
2.2K0
鸿蒙开发套件全面升级,为鸿蒙生态注入一针强心剂
2022年华为开发者大会(HDC.Together)于11月4日在东莞松山湖揭开帷幕,带来了鸿蒙生态的最新成果,展示了鸿蒙生态的全新格局。在大会主题演讲中,华为带来了多种令人震撼的技术成果,如分布式能力、原子化服务、AI、AR、地图、游戏、音视频、隐私安全、HarmonyOS座舱等。同时鸿蒙开发套件推出了升级的ArkTS、ArkUI、ArkCompiler等技术,通过这些技术的加持,让HarmonyOS App从开发、到布局,再到性能,都得到了质的飞跃。从而全面加速推进HarmonyOS应用生态。
蒙娜丽宁
2022-11-22
7760
史上最全的Go语言模块(Module)管理详解(基于Go1.19)
go语言一直到1.10,都是使用GOPATH设置模块搜索路径,但从1.11开始,引入了新的Go模块管理机制(go modules),不过一直到1.15,默认的模块管理方式仍然是GOPATH,直到Go1.16开始,将默认的模块管理方式改成了go modules,在这种工作模式下,每一个模块都必须使用go.mod文件指定模块的位置。
蒙娜丽宁
2022-11-22
2.9K0
U盘空间没了,原来是EFI分区搞的鬼,删除它!
EFI系统分区(ESP)是一个使用FAT32格式化的小分区,通常为100MB(也可以更大),其中存储已安装系统的EFI引导加载程序以及启动时固件使用的应用程序。如果您的硬盘驱动器初始化为GUID分区表(GPT)分区样式,它将在安装Windows或Mac操作系统(OS)后生成EFI系统分区。
蒙娜丽宁
2022-11-22
4.2K0
OpenHarmony3.1组件:用Slider组件控制风车旋转和尺寸
OpenHarmony3.1支持很多组件,这篇文章演示一下如何使用滑杆组件(Slider)控制另一个组件。这个案例通过两个Slider组件分别控制屏幕上方风车的旋转速度和大小。读者可以从中学到Slider组件的基本用法,以及在OpenHarmony中如何控制组件。
蒙娜丽宁
2022-08-30
9750
巨爽!直接在鸿蒙(HarmonyOS)手机使用超布局设计界面
http://mpvideo.qpic.cn/0b2efeaamaaa7qacm2udujrfakodayuqabqa.f10002.mp4?dis_k=2da1f0b8e43495dc31d6128
蒙娜丽宁
2022-08-30
2610
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档