Python 3 中的 metaclass

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

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

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

硬盘危机——Chia 挖矿背后的原理与技术细节(二)

本文是《硬盘危机——Chia 挖矿背后的原理与技术细节》系列的第二篇文章

当一种虚拟资产要进行初始分派时,通常会要求参与者消耗现实世界中的稀缺有限资源(见上一篇文章)来换取获得该资产的机会。对于 Bitcoin 网络来说,稀缺有限资源即为计算哈希值的算力。而 Chia 则选择了存储空间时间作为稀缺有限资源。

在本篇文章中,我们将深入探讨 Chia 网络中的共识算法,了解 Chia 网络是通过何种方法向参与其中的用户分配虚拟资产的。本文主要参考自《Chia Consensus Algorithm》白皮书文档。

在 Apple M1 芯片上畅玩 CS: GO 游戏

如果在几年前,当与你一起打游戏的朋友告诉你他/她购买了一台 MacBook 系列笔记本电脑时,你就会知道这位朋友可能从此无缘现代 3D 游戏了。这种传统的印象从 2020 年起发生了改变——苹果为 13 英寸 MacBook Air 以及 MacBook Pro 推出了基于 Apple M1 芯片的新款设备后,用户惊奇地发现使用他们的设备进行 3D 游戏的性能不逊于一些独立显卡。

作为一名《反恐精英:全球攻势》(CS: GO)游戏的忠实玩家,在本文中我分享使用 Apple M1 芯片畅玩 CS: GO 游戏的一些配置经验,以及应对CS: GO 在 Apple M1 芯片上游戏崩溃的解决方法。

为什么 GNU yes 程序这么快

几乎所有人在学习一门新的程序设计语言时,首先学到的功能便是将一段字符串——通常是“Hello, world!”——输出到屏幕上。在 *NIX 系统中,就一直存在着这样一个功能简单的程序,能够重复地将字符 “y”(或是其他什么东西)输出到屏幕上,通常用在一些需要用户重复输入确认指令的场景下:这个程序叫做 yes。

*NIX:表示类 Unix 操作系统,这通常包括 FreeBSD、GNU/Linux、MINIX 以及 macOS 等

Wikipedia

硬盘危机——Chia 挖矿背后的原理与技术细节(一)

大容量硬盘成为新的理财产品

来自 v2ex.com 上的主题讨论

近日,一种被称为 Chia 的数字资产成为最新的讨论热点。与其他主流类型的区块链上资产不同,Chia 采用了空间与时间证明(Proof of space and time)的共识算法进行资产分配。该项目声称为整个行业提供一种“环境友好的挖矿方式”,却因为造成大量硬盘缺货而被广为人知。

本文作为“硬盘危机——Chia 挖矿背后的原理与技术细节”系列的第一篇文章,介绍 Chia 特色的空间与时间证明算法,深入讨论该共识算法的原理以及技术细节,解释这种挖矿方式为何要求大容量的存储设备。本文主要参考自《Chia Consensus Algorithm》白皮书文档。

深入理解 Python 中的类属性

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

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

复盘 3·12:比特币的量与形

自 2009 年比特币的概念被提出起,区块链上资产一直被人们视为一种能够规避传统金融市场动荡的投资产品。近年来,伴随着投资者对于数字货币市场的参与度的提高,数字资产的价格变动也愈发受到传统金融市场的影响。2020 年,包括比特币在内许多数字资产的价格就出现了“过山车式”的大幅波动。

对于参与数字资产市场的这些投资者来说,2020 年 3 月 12 日绝对是令人印象深刻的一天。在这短短的 24 小时内,包含 BTC/USDT、ETH/USDT 在内的主流交易对的价格几乎折半。本文撰写于 3·12 后近一周年之际,引导您重新领略这惊险刺激的一天,探索幕后的故事。

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

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