Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 7, 2007 08:04:53

marshmallow
От:
Зарегистрирован: 2007-08-07
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП в Питоне

Помогите разобраться начинающему Питон-программисту. ;)

class A(object):
    
    def __init__(self):
        print 'Hello from A.'
        c = self.C()
        
    class B(object):
        
        def __init__(self):
            print 'Hello from B.'
            
    class C(B):
        
        def __init__(self):
            super(A.B, self).__init__() # Может по другому написать тут?
            print 'Hello from C.'
        
a = A()
Как получить результат именно что вызовом конструктора родительского класса?

Hello from A.
Hello from B.
Hello from C.

Заранее всем спасибо.



Офлайн

#2 Авг. 7, 2007 08:55:31

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП в Питоне

marshmallow
super(A.B, self).__init__() # Может по другому написать тут?
super(A.C, self).__init__()
P.S. super(A.B, self) - обратиться к object, т.к.:
>>> A.C.mro()
[<class '__main__.C'>, <class '__main__.B'>, <type 'object'>]



Офлайн

#3 Авг. 7, 2007 12:39:52

marshmallow
От:
Зарегистрирован: 2007-08-07
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП в Питоне

Спасибо, мне надо внимательней help(super) читать. :)



Отредактировано (Авг. 7, 2007 12:40:19)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version