Comment by gpderetta

5 days ago

ok, then it is nuts that __getattr__ (itself a specially blessed function) is not required to be pure at least from the caller point of view.

If it was it wouldn't be Python. It can never be pure because __getattr__ is just another method that anyone can overwrite.