Python
fromdeath and gravity
3 hours agoLearn Python object-oriented programming with Raymond Hettinger
Subclassing in Python is a technique for code reuse, emphasizing operational views over traditional hierarchical models.
By working through this quiz, you'll revisit the descriptor protocol, how .__get__() and .__set__() control attribute access, and how to implement read only descriptors. You'll also explore data vs. non-data descriptors, attribute lookup order, and the .__set_name__() method.
Christopher shares an article titled "The Uselessness of 'Fast' and 'Slow' in Programming." It digs into how the different aspects of software performance span a wide range of orders of magnitude, and how developers can obsess over irrelevant performance details, often losing more time working in suboptimal environments than building what they need with tools they already know. We also discuss an article about why uv is fast, which explains how most of its speed comes from engineering decisions rather than just being written in Rust.
A directory without an __init__.py file becomes a namespace package, which behaves differently from a regular package and may cause slower imports. You can use __init__.py to explicitly define a package's public API by importing specific modules or functions into the package namespace.
Kacper Borucki blogged about parameterizing exception testing, and linked to pytest docs and a StackOverflow answer with similar approaches. The common way to test exceptions is to use pytest.raises as a context manager, and have separate tests for the cases that succeed and those that fail. Instead, this approach lets you unify them. I tweaked it to this, which I think reads nicely: One parameterized test that covers both good and bad outcomes. Nice.