Найти - Пользователи
Полная версия: Как получить список родителей класса при при множественном насл-нии?
Начало » Python для новичков » Как получить список родителей класса при при множественном насл-нии?
1
BelStudent
Как получить список (массив, словарь) родителей класса при множественном наследовании?
bw
self.__class__.__bases__?

p.s. Чую, вопрос с подвохом.

..bw
meticulos.slacker
class.__mro__ ?
BelStudent
2 рой вариан неработает, а первый вроде рпботает. Для следующего кода:
class A:
pass
class B:
pass
class C(A,B):
def __init__(self):

print(str(self.__class__.__bases__))
#print(С.__mro__)

if __name__=='__main__':
C()
Вывело
(<class __main__.A at 0xb775c71c>, <class __main__.B at 0xb775c8fc>)

Не совсем идеальный вариант, но сойдет
BelStudent
Разобрался с вопросом полностью:
http://belstudent.cyberblogger.ru/2010/07/07/poluchenie-spiska-roditelej-klassa-pri-mnozhestvennom-nasledovanii.html
bw
Ну это же не правда.
Оба способа работают в двойке (про тройку не скажу, не интересовался, неужели там сохранили старые классы?). И первый некорректен, точнее не полон, требуется рекурсивный обход __bases__ всех встречающихся классов, не только текущего.

..bw
BelStudent
А зачем рекурсивный обход? мне нужно знать только предков моего текущего класса, а не всех предков вообще.
bw
> мне нужно знать только предков моего текущего класса
Странная хотелка. Тогда __mro__ вам точно не помощник, используйте __bases__ (к тому же он работает для всех типов объектов).

..bw
BelStudent
bw
> мне нужно знать только предков моего текущего класса
Странная хотелка. Тогда __mro__ вам точно не помощник, используйте __bases__ (к тому же он работает для всех типов объектов).

..bw
ты прав
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB