2013-12-22 2 views
-3

У меня вопрос о конфликтах имени в python. Если у меня есть что-то вроде:Python множественное наследование имени наследования

class A: a='a' 
class B(A): a='b' 
class C(A): a='c' 
class D(C,B): pass 

D.a напечатает c, есть ли способ, чтобы получить B.a из D или A.a?

+1

вы можете прочитать, как MRO работы Http:? //www.python.org/download/releases/2.3/mro/ –

+0

-1 - ваш вопрос не показал даже минимальных усилий по исследованию. В основном вы спрашиваете, как работает множественное наследство, но это объясняется достаточно хорошо в документации и в тоннах других вопросов здесь, на SO. Я не покупаю, что вы пытались выполнить поиск и не могли найти ничего об этом. – Bakuriu

ответ

2

Да, вы можете делать то, что вы предлагаете:

class D(C, B): 
    a = A.a 
+0

, тогда больше нет смысла для наследования :) –

+0

Ну, я полагаю, есть другие атрибуты класса и экземпляра, о которых нам не рассказывают, в противном случае это очень простой способ получить персонажей! – jonrsharpe

+0

, может быть, вопрос был недостаточно точным. Как только я скомпилировал код из вопроса, как получить доступ к 'A.a' из объекта' D'? Если у меня есть 'd = D()', 'd.a' даст мне' c'. – user1544128

Смежные вопросы