前言 很久没更新了,写这篇文章是因为受了 高天直播 Code Review 的启发,深刻感觉到 Python 的灵活和强大,导致了实现同样的功能不同的人会写出完全不一样的代码。Python 语法糖有很多,如何把握「甜度」?过犹不及,我就本人的口味来细说一下。 <!-- more --> 免责声明 ,本文有关代码好坏的论断纯属个人喜好,总结的规律均为信口开河,若要争论个高下大可不必。 写个配置类 小 F 是个后端程序员,他接到一个需求,写一个配置类作为项目配置的模型。很常见的需求嘛,先不管 Pydantic 之类的现
Frost's Blog · 2022.07.21 · 待分类 中文版本 PDM has released 2.0.0 recently, it is mostly complete feature-wise. This post lists and illustrates the important new features, and more details can be seen in the changelog . Virtualenv becomes the default When PDM was first created, it was advertised a
Frost's Blog · 2022.07.03 · 待分类 The English Version PDM 在最近发布了 2.0.0 版本,新特性已基本完成。本文将介绍这次更新的内容。详细改动日志在 这里 可以看到。 虚拟环境成为项目的默认配置 PDM 在建立之初,是标榜自己是一个支持 PEP 582 包结构的包管理器。但无奈,经过两年的观望,PEP 582 仍旧停留在 Draft 状态,并且迟迟没有进展。 它虽然在一开始令人眼前一亮并吸引了大批初始用户,但这也成为 PDM 被主流接纳的一个阻碍 ,限制了它的推广。同时,虚拟环境在各种 IDE 和工具中有更好的支持。 现在我
Frost's Blog · 2022.07.03 · 待分类 在上周的周记中我记了一句: pdm 提了几个 issue,都和 debian 系统的 python 有关,i hate it 本文是对这句话的一个扩展。作为一个 Python 打包工具的开发者,非常痛恨 Debian 系统,所以我在回复 laixintao 时说道: Python 打包系统的混乱,Debian 系统是要居大功的。其实不止 Debian 是如此,下面开始吐槽,非常不严谨,吐槽完我就跑。 <!-- more --> Python 中的 Install Scheme Install Scheme 的概念,
Frost's Blog · 2022.03.27 · 待分类 我是一个 Logseq 的新手玩家,在使用 Logseq 的时候,有一个最大的痛点, 就是 Logseq 不能随时随地记日记(Journal),本地化存储是 Logseq 的优点,但也造成一些不便。比如我躺上床上,在淋浴中,在运动中想到一个点子, 难道我要记到脑子里,等第二天再记到电脑上,还是我立刻打开电脑记下来呢,这两种方式对中年人都不友好。我把这个问题称作 Logseq 的最后一米问题。 <!-- more --> 好吧不装了,我不是伊洪,但如果你读过他的 巧妙利用 iOS 的快捷指令配合 GitHub Act
Frost's Blog · 2022.03.20 · 待分类 本文介绍了在 Python 库中 vendor 第三方库的正确方法。我知道这篇文章的受众非常狭窄,大部分 Python 开发者都不会也不需要用到这个技术, 但是本着分享的精神还是把它总结一二,作为软件的作者更是应该尊重所有其他库的作者的劳动。 <!-- more --> WHAT - vendor 是什么? Vendor,直译供应商,在软件中(比如 C, Go 等语言中),是一种把第三方库的代码直接内嵌到软件中的方式。 它不同于通过依赖文件指定的方式,第三方库的代码是直接包含在软件中的,有可能原样保留也有可能经过修
Frost's Blog · 2022.03.12 · 待分类 这是我在今年 11 月 PyCon China Shenzhen Meetup 上做的线下演讲。由于之前我在线上的会议上介绍了 Python 打包的历史进程,所以这次我打算 厚颜无耻地 单纯 给 PDM 打广告,原本就是打算现场 demo,没怎么准备。结果到了会场之后发现播放设备和讲者是分离的,我临时在会场录制了一个 demo。 线上和线下演讲体验相差很大,线下虽然不会和录制的演讲一样语气机械化,但也会造成一直嘴瓢,很多下意识的连接词。 仓促准备,错误在所难免,姑且一看,对于了解 PDM 还是很有帮助的。 视频:
Frost's Blog · 2021.12.21 · 待分类 Python 里的 argparse 大家都不陌生,是用来解析命令行参数的标准库,它的用法大致是这样: import argparse parser = argparse.ArgumentParser(description='Greet to some body') parser.add_argument( '-n', '--name', default='John Doe', help='name of the person to greet') args = parser.parse_args() print
Frost's Blog · 2021.11.23 · 待分类 我在今年的 PyCon China 2021 上在线做了一个演讲,题目是「Python 打包 101」。Python 打包是个每个 Python 开发都可能用到并且需要了解的知识。演讲试图从 Python 打包的历史进程开始,阐述 pip install 背后发生的过程,同时介绍当前 Python 打包的最佳实践。 同是我是分会场的主持,为了能减轻负担我选择了录视频,这也是我第一次录视频,有几个体会: 自己回放时感觉有点拿腔拿调,和平常说话不一样; 我是事先准备了讲稿,讲下来发现会比现场讲快不少。这段演讲如果我现场
Frost's Blog · 2021.10.20 · 待分类 本文是 Subclassing in Python Redux 的中文版。在阅读的过程中,我发现与我的「友好的 Python」不谋而合,故向作者请求翻译此文。版权归原作者 Hynek Schlawack 所有。除非特别说明,本文所有的「我」均指原作者 Hynek。 <!-- more --> 继承与组合之间的冲突就和面向对象编程一样古老。一些最新的语言,如 Go 和 Rust ,证明了你不需要继承也能编写代码。但是具体在 Python 语言中,有什么实用的继承的方法呢? 任何长期关注我的人都知道,我是坚定地站在组合
Frost's Blog · 2021.07.30 · 待分类