Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 27, 2011 13:07:38

Brony
От:
Зарегистрирован: 2011-06-21
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП Вызывать __init__ родителя или нет?

Здравствуйте.

Подскажите пожалуйста, как правильно:

class Parent:
'''Description'''
constant = value


class Child(Parent):
'''Description'''
def __init__(self, data):
self.data = data

def make(self):
self.data += self.constant


class AnotherChild(Parent):
'''Description'''
def __init__(self, data):
self.data = data

def make(self):
self.data = str(self.data) + self.constant
class Parent:
'''Description'''
constant = value

def __init__(self, data):
self.data = data


class Child(Parent):
'''Description'''
def __init__(self, data):
Parent.__init__(self, data)

def make(self):
self.data += self.constant


class AnotherChild(Parent):
'''Description'''
def __init__(self, data):
Parent.__init__(self, data)

def make(self):
self.data = str(self.data) + self.constant
Если я верно понимаю, правилен второй вариант? Не смотря на увеличившийся объем кода.



Отредактировано (Дек. 27, 2011 14:17:31)

Офлайн

#2 Дек. 27, 2011 14:52:14

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

ООП Вызывать __init__ родителя или нет?

Второй вариант правильный, но начиная с питона 3, можно писать так:

super().__init__(self,data)



Офлайн

#3 Дек. 28, 2011 13:58:05

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

ООП Вызывать __init__ родителя или нет?

super().__init__(data)

self указывать не нужно



Офлайн

#4 Дек. 28, 2011 14:39:47

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

ООП Вызывать __init__ родителя или нет?

Андрей Светлов
self указывать не нужно
Да, верно.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version