Програмиране с Python » Форуми » Общи въпроси

наследници на даден клас

(13 posts)

  1. uZer
    Member

    понеже аз не мога да ходя на лекции (няма достъп за количка в ФМ

    Posted 6 years ago #
  2. djv
    Member

    В задачата се иска да търси

    Posted 6 years ago #
  3. Anislav
    Member

    djv - май не си прав за __bases__

    аз си направих следния тест:

    class A(object): pass
    class B(A): pass

    b = B()
    #print b.__bases__ - AttributeError: B instance has no attribute '__bases__'

    c = type('C', (A,), {})
    print c.__bases__ # (<class '__main__.A'>,)

    тоест __bases__ работи само за динамични класове

    Posted 6 years ago #
  4. Anislav
    Member

    class A(object): pass
    class D(object): pass
    class B(A): pass

    print B.__mro__
    #(<class '__main__.B'>, <class '__main__.A'>, <class '__main__.D'>, <type 'object'>)

    само това успях да намеря...

    Posted 6 years ago #
  5. uZer
    Member

    въпрос:
    ето тази картинка
    http://fmi.py-bg.net/files/2007/04/p5-sample.gif

    дали съответства на този код

    class D: pass
    class C: pass
    class B(D): pass
    class A(B, C): pass
    C.x = 4
    D.x = 9

    ако да, то djv е прав и търсенето става назад по иерархията и всичко е красиво и разбираемо.
    фактически в рисунката трябва да се обърне посоката на стрелките...

    надявам се на скор отговор от авторите

    Posted 6 years ago #
  6. uZer
    Member

    и още въпрос
    задължително ли да се предефинира __getattribute__
    аз предефинирах __getattr__
    щото класа ми е написан по старому

    Posted 6 years ago #
  7. Anislav
    Member

    за картинката смятам, че е наистина така

    class D: pass
    class C: pass
    class B(D): pass
    class A(B, C): pass
    C.x = 4
    D.x = 9

    bases проработи :)

    a = A()
    print a.__class__.__bases__

    Posted 6 years ago #
  8. Търсенето, както си е описано в условието се извър

    Posted 6 years ago #
  9. Dilyana
    Member

    Posted 6 years ago #
  10. Dancho
    Member

    Dilyana: ми в списъка няма да слага

    Posted 6 years ago #
  11. nadya
    Member

    A
    B C
    D

    ако тръгнем от клас Д да търсим и С има атрибут а . Връщаме ли атрибут а или не (ако в другите класове съответно не го намерим)

    Posted 6 years ago #
  12. nadya
    Member

    от картинката май не стана ясно. А е родител на Б и С. Б е родител на Д

    Posted 6 years ago #
  13. Надя,
    Погледни по-горе:

    На картинката стрелка от клас X към клас Y означава, че X е наследник на Y.

    Posted 6 years ago #

RSS feed for this topic

Reply

You must log in to post.