Наследование в Python - PullRequest
       20

Наследование в Python

3 голосов
/ 17 февраля 2010

Мы только начали изучать наследование классов и поиск атрибутов в python. У меня вопрос по поводу следующего кода:

class a : n = 1
class b : n = 2
class c : n = 3
class d (a,b) : pass
class e (d,c) : pass

Я знаю, что e.n будет равен 1 из-за характера процедуры поиска атрибута (поиск в глубину вначале) Однако как я могу получить доступ, скажем, к классу с из класса е? Я пробовал e.c.n, но это дает мне ошибку. Может кто-нибудь сказать мне, что я делаю не так? Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 17 февраля 2010
>>> e.__bases__[1].n
3
1 голос
/ 17 февраля 2010

Вы не можете добраться отсюда. Атрибуты класса заменены. Используйте ссылку на класс напрямую (c.n).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...