I have an X descriptor class here. I am trying to use descriptor X in another class Y
class X: def __init__(self, value): self.value = value def __get__(self, instance, owner): print('#### X.__get__ ####') return self.value def __set__(self, instance, value): print('#### X.__set__ ####') self.value = value class Y: def __init__(self): self.x = X(10) y = Y() print(yx) yx = 20
I was hoping that the print(yx) statement would call x.__get__ , and the yx = 20 statement would call x.__set__ , but that would not happen. When I run the above program, I just get this output.
<__main__.X object at 0x7fc65f947950>
Why weren't descriptor methods called?
source share