Подкласс str терпит неудачу, подкласс списка работает .. почему? [дубликат]Python

Программы на Python
Anonymous
Подкласс str терпит неудачу, подкласс списка работает .. почему? [дубликат]

Сообщение Anonymous »

Я пытаюсь создать подкласс строки, но __init__() не работает.

Код: Выделить всё

class StrSubClass(str) :
def __init__(self, s) :
super().__init__(s)

Код: Выделить всё

StrSubClass("foobar")
не работает:

Код: Выделить всё

 File ".../foo.py", line 3, in __init__
super().__init__(s)
TypeError: object.__init__() takes exactly one argument (the instance to initialize)
Тем не менее, похоже, это работает из списка:

Код: Выделить всё

class ListSubClass(list) :
def __init__(self, l) :
super().__init__(l)

Код: Выделить всё

>>> ListSubClass( [1,2,3] )
[1, 2, 3]
При сбое создается впечатление, что вызывается __init__() базового объекта в обход str.__init__().

Вернуться в «Python»