Today, I was reading RH's Descriptor HowTo Guide at https://docs.python.org/3/howto/descriptor.html?highlight=descriptors
I just really want to fully "get" this. So I put together a little test from scratch. Looks like this: class The: class Answer: def __get__(self, obj, type=None): return 42 >>> The.Answer <class '__main__.The.Answer'> >>> but, I expected to see 42. So, digging deeper I read: For classes, the machinery is in type.__getattribute__() which transforms B.x into B.__dict__['x'].__get__(None, B). In pure Python, it looks like: def __getattribute__(self, key): "Emulate type_getattro() in Objects/typeobject.c" v = object.__getattribute__(self, key) if hasattr(v, '__get__'): return v.__get__(None, self) return v OK, so I copied this function, then ran it and got: >>> __getattribute__(The, 'Answer') 42 So, what I don't get is why the "B.x into B.__dict__['x'].__get__(None, B)" part doesn't work in my case. I'm sure I'm missing something here (that`s usually the case for me <:‑|) , but what? -- https://mail.python.org/mailman/listinfo/python-list