class A:
__slots__ = ("a",)
def __init__(self) -> None:
self.a = 1
class BCorrect:
__slots__ = ("b",)
def __init__(self, b) -> None:
self.__class__.b.__set__(self, b)
def __getattr__(self, k):
return getattr(self.b, k)
def __setattr__(self, k, v):
setattr(self.b, k, v)
a = A()
b = BCorrect(a)
print(b.a) # 1
b.a = 2
print(a.a) # 2
Y2xhc3MgQToKICBfX3Nsb3RzX18gPSAoImEiLCkKICBkZWYgX19pbml0X18oc2VsZikgLT4gTm9uZToKICAgIHNlbGYuYSA9IDEKCgpjbGFzcyBCQ29ycmVjdDoKCV9fc2xvdHNfXyA9ICgiYiIsKQoJZGVmIF9faW5pdF9fKHNlbGYsIGIpIC0+IE5vbmU6CgkJc2VsZi5fX2NsYXNzX18uYi5fX3NldF9fKHNlbGYsIGIpCgoJZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGspOgoJCXJldHVybiBnZXRhdHRyKHNlbGYuYiwgaykKCglkZWYgX19zZXRhdHRyX18oc2VsZiwgaywgdik6CgkJc2V0YXR0cihzZWxmLmIsIGssIHYpCgphID0gQSgpIAoKYiA9IEJDb3JyZWN0KGEpCnByaW50KGIuYSkgICMgMQpiLmEgPSAyCnByaW50KGEuYSkgICMgMgoK