Вопрос Вопрос по python

Регистрация
26 Авг 2013
Сообщения
67
Репутация
0
Спасибо
0
Монет
0
class TitledText(str):

def __new__(cls, content, text_title, *args, **kwargs):

instance = super().__new__(cls, content, text_title)

return instance



def title(self):

return self._text_title





titled = TitledText('Сreate a class Soda', 'Homework')

print(titled)

Почему выдаёт ошибку?
 
Не поставил точку с запятой)
 
Потому, что super() - это класс str. Конструктор которого принимает ОДНО значение.
Ты же вызовом super().__new__(cls, content, text_title) передаёшь ДВА значения: content и text_title, что и вызывает ошибку.
Фактически, ты пытаешься выполнить: str('Сreate a class Soda', 'Homework')
 
не соответствующее количество аргументов
 
а какая ошибка то
 
Назад
Сверху