#!/usr/local/bin/python3 from types import MethodType class B(object): def __init__(self): print('B.__init__') #self._a = 0 self.b = 0 class C(B): def __init__(self): print('C.__init__') self._a = 1 super().__init__() #self.__class__.a = property(a) @property def a(self): print('C.a') return self._a def a(self): return self._a #C.a = property(a) print(C().a) print(C.a)