CPython 源码阅读 - 属性访问

本文所使用代码为 CPython 3.7.4,commit sha 为 e09359112e250268eca209355abeb17abf822486 本文探讨 Python 中当使用 obj.attr 的语法访问对象属性的时候会发生什么,是对本人 16 年所写的 Python 中的 attribute 和 property 的修正与补充 我们先从 bytecode »

探秘 New Relic Python agent

本文为阅读 NewRelic Python agent 源代码时的思考,主要讨论如何在不修改用户代码的前提下在 Python 中实现模块级别的 hook。使用到的代码版本为 4.20.1.121 newrelic-admin 调用的是位于 newrelic/admin/__init__.py 中的 main 函数,不过在这之前有两个 module 中执行的函数 »

环境变量那些事

本文所使用代码为 CPython 3.7.4,commit sha 为 e09359112e250268eca209355abeb17abf822486 About Environ Variable 每个程序都接收到一张 环境表。其是一个字符指针数组,其中每个指针包含一个以 NULL 结束的 C 字符串的地址。全局变量 environ 则包含了该这指针数组的地址。按照惯例环境变量由 name=value »

Time, Clocks, and the Ordering of Events in a Distributed System

本文是论文 Time, Clocks, and the Ordering of Events in a Distributed System 的阅读笔记 分布式系统包含了许多空间上分离的不同进程,它们通过交换消息来进行通信。在分布式系统中,有时很难去说两个事件谁先谁后,因为机器的系统时间存在着差异。如果采用全局时钟,那么也会面临网络延迟及一系列故障。因此这种 "happened before" 关系是偏序的(简单说就是不是任意两个事件都可以比较大小的)。此篇论文中主要讨论了 »

shadowverse 无限制 M 段搭车指南

下面将讲述这一个月我是如何不务正业的 本人在这段时期一直在使用耶拉教,从 A2 升级到 Master 并且最高取得 11 连胜 ROG 前期(2019/06/27~2019/07/11) 所使用卡组 P.S 在削弱前 "清純祈禱者‧耶菈" 为 2 费 »

Python 3.8 中的 asyncio REPL

IPython 自 7.0 版本开始支持了在 REPL 中直接 await(参考 Asynchronous in REPL: Autoawait),并且对 trio 和 curio 进行支持。可以通过 %autoawait trio 指令切换 IOLoop 然后 Python 3. »

深入理解 Prometheus Python Client

本文使用代码版本为 0.6.0,commit sha 为 d85d12060ed1e3d46201dca0f1da6a9345e2a23d Basic 使用 prometheus_client 来监控 Flask 应用的示例 import time from flask import Flask from flask import g from »