Django 中的 select_for_update(skip_locked)

2021 年 12 月,Django 在新发布的 4.0 版本中提供了对 MariaDB 数据库后端的 QuerySet.select_for_update()skip_locked 参数的支持。这个参数在 MariaDB 10.6 中被引入,而八个月后,Django 的下一个主要版本便宣布了这个参数提供的支持。

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 版本升级至最新版本的操作。