Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 9, 2012 20:53:04

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Объясните смысл функции super()

С какой целью применяется?
В каких ситуациях удобно использовать?
Может это сокращенная запись чего-то?
и т.п.

Желательно на простеньких примерах…

Офлайн

#2 Авг. 9, 2012 21:14:32

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Объясните смысл функции super()

Ну не знаю. Вроде в документации все это есть. Там же и ссылка на отличный блог-пост (кстати, есть перевод).

Офлайн

#3 Авг. 9, 2012 22:01:45

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Объясните смысл функции super()

Работает только с классами, наследованными от object или его подкласса (встроенных типов).
Идея интересная, но переименование в ide и так по идее отработает.

Офлайн

#4 Авг. 9, 2012 22:16:52

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Объясните смысл функции super()

odnochlen
Работает только с классами, наследованными от object или его подкласса (встроенных типов).
Идея интересная, но переименование в ide и так по идее отработает.
Основные преимущества открываются при множественном наследовании.

Офлайн

#5 Авг. 9, 2012 22:20:13

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Объясните смысл функции super()

И какие?

Офлайн

#6 Авг. 9, 2012 22:23:26

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Объясните смысл функции super()

odnochlen
И какие?
Лень копипастить (про LoggingDict, MovableColoredShape и OrderedCounter):
http://freehabr.ru/blog/python/151.html

Отредактировано reclosedev (Авг. 9, 2012 22:26:10)

Офлайн

#7 Авг. 10, 2012 01:44:51

igrishaev
От:
Зарегистрирован: 2011-07-28
Сообщения: 7
Репутация: +  1  -
Профиль   Адрес электронной почты  

Объясните смысл функции super()

Функция super() позволяет сослаться на родителя экземпляра класса. В функцию передается класс и текущий экземпляр.

Например, нужно изменить конструктор класса, добавив инициализацию какого-то поля.

class Foo(object):
    def __init__(self):
        self.bar = 42
class Baz(Foo):
    def __init__(self):
        super(Baz, self).__init__()
        self.param = "test"
b = Baz()
print b.bar, b.param
>>> 42 test



Отредактировано igrishaev (Авг. 10, 2012 01:45:44)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version