#!/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(MethodType(a, self)) """ @property def a(self): print('C.a') return self._a""" def a(self): return self._a print(C().a)