程序员眼中的日期与时间

本文使用了 JavaScript 脚本来生成动态网页内容。请确保已开启浏览器的 JavaScript 支持

大多数的应用程序都需要同日期(date)与时间(time)打交道,这取决于具体用例。一些应用程序使用日期与时间来决定何时用户可以获得日常登录奖励。另一些应用则需要根据用户所在地的时区来向他们展示下订单的时间。这些种种用例要求我们的程序员使用一套成熟且精密的方式来管理日期与时间,并且了解在日期与时间处理时会遇到的一些常见问题及其解决方案。

一张装饰用图片,展示了使用马赛克风格瓷砖拼装的树叶图案,经过染色滤镜效果处理
摄于新加坡滨海市区线市中心站,2023 年春季

Python 3 中的 metaclass

在 Python 程序设计语言中,大多数类用于生成对象:当你调用这些类时,它们就会返回一个该类的实例(Instance)给调用者。比如调用一个定义了学生所需各种操作的 Student 类,我们就获得了一个新的 Student 实例,这样的操作看起来非常自然。

面向对象编程(OOP)语言的一大核心思想是继承,即如果我手头有几个像 Student 一样的类,并且希望同时为这些类添加一些公用功能的话,我们会选择创建基类,然后修改这些类的定义,使这些类作为该基类的子类。而元类(Metaclass),顾名思义,意为“创建类的类”——当我们希望更深入控制一系列类的创建过程时,我们用它。

本文是中文互联网世界中又一篇讲解 Python 中元类的博客文章。如果这是你第一篇看到的相关文章,又或者你是从别的文章跳转而来,希望本文能为你打开一个理解元类的全新视角。

深入理解 Python 中的类属性

在 Python 中,万物都是对象——这门惹人喜爱的编程语言通过一套极其精简的语法规则定义(Class),实现对于面向对象编程的支持。而在这些为了支持面向对象编程而引入的诸多概念中,最容易引起混淆的当属类属性(Class Attribute)。许多程序员对于 Python 的语言细节理解不到位,容易误用类属性并导致错误发生。

本文深入讨论 Python 中与类属性相关的一些问题,并主要参考自 Charles Marsh 撰写的《Python Class Attributes: An Overly Thorough Guide》一文。阅读本文需要有基本的面向对象编程(Object-oriented programming,OOP)的相关知识。

如何在 Ubuntu 系统上安装特定版本 Python

你是否有使用特定版本 Python 的需求?本文中,我们介绍通过添加 deadsnakes PPA 的方式安装特定版本 Python 的步骤。该方法适用于 Ubuntu 16.04、18.04、20.04 以及 22.04 等多个 Ubuntu 版本的用户。通过创纪录的速度安装多个不同的 Python 版本,立刻开始!

CPython 中的垃圾回收:代(generation)的概念

在先前《CPython 中的垃圾回收机制》一文中,我们详细介绍了 Python 程序设计语言的默认实现 CPython 中完成垃圾回收的详细步骤。文中提到了有关垃圾回收流程中有关“代”(generation)的概念。本文详细介绍这种用于提升垃圾回收器性能的常见优化手段——将变量划分为多

CPython 中的垃圾回收机制

本文主要参考自 Python Developer’s Guide 中的这篇文章

CPython 是你可以从 Python.org 网站上下载到的原生 Python 解析器。在大多数系统中,当你输入 python 指令运行你的程序时,你通常是在使用默认的 CPython 实现。与大多数具有自动存储器管理机制的编程语言类似,Python 具有垃圾回收(Garbage Collection,GC)特性。了解 CPython 是如何实现垃圾回收机制对于深入了解 Python 编程语言是重要的。

如何为树莓派 Raspberry Pi 升级 Python 版本

用户时常使用树莓派开发板进行物联网(Internet-of-Things,IoT)开发工作。其上运行的一些诸如 Home Assistant 的程序可能需要一个更新版本的 Python,而树莓派等系统通过 apt 包管理器预置的 Python 版本可能并非最新。我们以将树莓派 Raspberry 更新至 Python 3.9 为例,演示如何将系统 Python 版本升级至最新版本的操作。