Поскольку msg
является переменной класса, вы можете просто сделать:
print C.msg # prints hohoho
Если вы перезаписываете переменную (как в классе B
), вы должны найти правильный родительский класс. Помните, что Python поддерживает множественное наследование .
Но так как вы определили классы и теперь, когда B
наследует от A
, вы всегда можете сделать это:
class B(A):
msg = 'hohoho'
def get_parent_message(self):
return A.msg
UPDATE:
Самая надежная вещь будет:
def get_parent_attribute(instance, attribute):
for parent in instance.__class__.__bases__:
if attribute in parent.__dict__:
return parent.__dict__[attribute]
и затем:
foo = B()
print get_parent_attribute(foo, 'msg')