念头。遇见不同想法 NIANTOU.NET

在别人的文字里,遇见自己的念头。

独立书写 · 自由阅读

Frost's Blog

按发表时间排列
40 篇

友好的 Python:面向对象接口

前言 很久没更新了,写这篇文章是因为受了 高天直播 Code Review 的启发,深刻感觉到 Python 的灵活和强大,导致了实现同样的功能不同的人会写出完全不一样的代码。Python 语法糖有很多,如何把握「甜度」?过犹不及,我就本人的口味来细说一下。 <!-- more --> 免责声明 ,本文有关代码好坏的论断纯属个人喜好,总结的规律均为信口开河,若要争论个高下大可不必。 写个配置类 小 F 是个后端程序员,他接到一个需求,写一个配置类作为项目配置的模型。很常见的需求嘛,先不管 Pydantic 之类的现

What's New In PDM 2.0?

中文版本 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

PDM 2.0 有什么新特性?

The English Version PDM 在最近发布了 2.0.0 版本,新特性已基本完成。本文将介绍这次更新的内容。详细改动日志在 这里 可以看到。 虚拟环境成为项目的默认配置 PDM 在建立之初,是标榜自己是一个支持 PEP 582 包结构的包管理器。但无奈,经过两年的观望,PEP 582 仍旧停留在 Draft 状态,并且迟迟没有进展。 它虽然在一开始令人眼前一亮并吸引了大批初始用户,但这也成为 PDM 被主流接纳的一个阻碍 ,限制了它的推广。同时,虚拟环境在各种 IDE 和工具中有更好的支持。 现在我

Debian 系统上捉摸不定的 Python

在上周的周记中我记了一句: pdm 提了几个 issue,都和 debian 系统的 python 有关,i hate it 本文是对这句话的一个扩展。作为一个 Python 打包工具的开发者,非常痛恨 Debian 系统,所以我在回复 laixintao 时说道: Python 打包系统的混乱,Debian 系统是要居大功的。其实不止 Debian 是如此,下面开始吐槽,非常不严谨,吐槽完我就跑。 <!-- more --> Python 中的 Install Scheme Install Scheme 的概念,

利用 GitHub Action 和快捷指令解决 Logseq 的最后一米

我是一个 Logseq 的新手玩家,在使用 Logseq 的时候,有一个最大的痛点, 就是 Logseq 不能随时随地记日记(Journal),本地化存储是 Logseq 的优点,但也造成一些不便。比如我躺上床上,在淋浴中,在运动中想到一个点子, 难道我要记到脑子里,等第二天再记到电脑上,还是我立刻打开电脑记下来呢,这两种方式对中年人都不友好。我把这个问题称作 Logseq 的最后一米问题。 <!-- more --> 好吧不装了,我不是伊洪,但如果你读过他的 巧妙利用 iOS 的快捷指令配合 GitHub Act

在 Python 中使用 vendor 的方法

本文介绍了在 Python 库中 vendor 第三方库的正确方法。我知道这篇文章的受众非常狭窄,大部分 Python 开发者都不会也不需要用到这个技术, 但是本着分享的精神还是把它总结一二,作为软件的作者更是应该尊重所有其他库的作者的劳动。 <!-- more --> WHAT - vendor 是什么? Vendor,直译供应商,在软件中(比如 C, Go 等语言中),是一种把第三方库的代码直接内嵌到软件中的方式。 它不同于通过依赖文件指定的方式,第三方库的代码是直接包含在软件中的,有可能原样保留也有可能经过修

PyCon SZ Meetup: PDM - Python 打包的新体验

这是我在今年 11 月 PyCon China Shenzhen Meetup 上做的线下演讲。由于之前我在线上的会议上介绍了 Python 打包的历史进程,所以这次我打算 厚颜无耻地 单纯 给 PDM 打广告,原本就是打算现场 demo,没怎么准备。结果到了会场之后发现播放设备和讲者是分离的,我临时在会场录制了一个 demo。 线上和线下演讲体验相差很大,线下虽然不会和录制的演讲一样语气机械化,但也会造成一直嘴瓢,很多下意识的连接词。 仓促准备,错误在所难免,姑且一看,对于了解 PDM 还是很有帮助的。 视频:

argparse 的高级用法

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

PyCon China 2021 演讲——Python 打包 101

我在今年的 PyCon China 2021 上在线做了一个演讲,题目是「Python 打包 101」。Python 打包是个每个 Python 开发都可能用到并且需要了解的知识。演讲试图从 Python 打包的历史进程开始,阐述 pip install 背后发生的过程,同时介绍当前 Python 打包的最佳实践。 同是我是分会场的主持,为了能减轻负担我选择了录视频,这也是我第一次录视频,有几个体会: 自己回放时感觉有点拿腔拿调,和平常说话不一样; 我是事先准备了讲稿,讲下来发现会比现场讲快不少。这段演讲如果我现场

再谈 Python 中的继承(译)

本文是 Subclassing in Python Redux 的中文版。在阅读的过程中,我发现与我的「友好的 Python」不谋而合,故向作者请求翻译此文。版权归原作者 Hynek Schlawack 所有。除非特别说明,本文所有的「我」均指原作者 Hynek。 <!-- more --> 继承与组合之间的冲突就和面向对象编程一样古老。一些最新的语言,如 Go 和 Rust ,证明了你不需要继承也能编写代码。但是具体在 Python 语言中,有什么实用的继承的方法呢? 任何长期关注我的人都知道,我是坚定地站在组合

读到这里,留一点时间给自己的念头。