hello,
i wonder if this possible to subclass a list or a tuple and add more
attributes ? also does someone have a link to how well define is own
iterable object ?
what i was expecting was something like :
[color=blue][color=green][color=darkred]
>>> t = Test('anAttribu teValue', ['el1', 'el2'])
>>> t.anAttribute[/color][/color][/color]
'anAttributeVal ue'[color=blue][color=green][color=darkred]
>>> for x in t:[/color][/color][/color]
print x
el1
el2
and below are some real unsuccessful tests :
[color=blue][color=green][color=darkred]
>>> class Test(tuple):[/color][/color][/color]
def __init__(self, a, alist):
self.a = a
self = tuple(alist)
[color=blue][color=green][color=darkred]
>>> t = Test(1, (1,2,3))[/color][/color][/color]
Traceback (most recent call last):
File "<pyshell#486>" , line 1, in -toplevel-
t = Test(1, (1,2,3))
TypeError: tuple() takes at most 1 argument (2 given)[color=blue][color=green][color=darkred]
>>> class Test(tuple):[/color][/color][/color]
def __init__(self, (a, alist)):
self.a = a
self = tuple(alist)
[color=blue][color=green][color=darkred]
>>> t = Test((1, (1,2,3)))
>>> t.a[/color][/color][/color]
1[color=blue][color=green][color=darkred]
>>> t.a = 2
>>> t.a[/color][/color][/color]
2[color=blue][color=green][color=darkred]
>>> len(t)[/color][/color][/color]
2[color=blue][color=green][color=darkred]
>>> t[/color][/color][/color]
(1, (1, 2, 3))[color=blue][color=green][color=darkred]
>>> t[2][/color][/color][/color]
Traceback (most recent call last):
File "<pyshell#495>" , line 1, in -toplevel-
t[2]
IndexError: tuple index out of range[color=blue][color=green][color=darkred]
>>> t[1][/color][/color][/color]
(1, 2, 3)[color=blue][color=green][color=darkred]
>>> class Test(tuple):[/color][/color][/color]
def __init__(self, (a, alist)):
self.__init__(t uple(alist))
self.a = a
[color=blue][color=green][color=darkred]
>>> t = Test((1, (1,2,3)))[/color][/color][/color]
Traceback (most recent call last):
File "<pyshell#500>" , line 1, in -toplevel-
t = Test((1, (1,2,3)))
File "<pyshell#499>" , line 3, in __init__
self.__init__(t uple(alist))
File "<pyshell#499>" , line 2, in __init__
def __init__(self, (a, alist)):
ValueError: unpack tuple of wrong size[color=blue][color=green][color=darkred]
>>> class Test(tuple):[/color][/color][/color]
def __init__(self, alist, a = None):
self.__init__(t uple(alist))
self.a = a
[color=blue][color=green][color=darkred]
>>> t = Test((1,2,3), 4)[/color][/color][/color]
Traceback (most recent call last):
File "<pyshell#503>" , line 1, in -toplevel-
t = Test((1,2,3), 4)
TypeError: tuple() takes at most 1 argument (2 given)[color=blue][color=green][color=darkred]
>>> class Test(tuple):[/color][/color][/color]
def __init__(self, (alist, a = None)):
self.__init__(t uple(alist))
self.a = a
SyntaxError: invalid syntax[color=blue][color=green][color=darkred]
>>>
>>> class Test(list):[/color][/color][/color]
def __init__(self, (a, alist)):
self.a = a
self = tuple(alist)
[color=blue][color=green][color=darkred]
>>> t = Test((4, (1,2,3)))
>>> t[/color][/color][/color]
[][color=blue][color=green][color=darkred]
>>> class Test(list):[/color][/color][/color]
def __init__(self, (a, alist)):
self.a = a
self = alist
[color=blue][color=green][color=darkred]
>>> t = Test((4, (1,2,3)))
>>> t[/color][/color][/color]
[][color=blue][color=green][color=darkred]
>>> t.a[/color][/color][/color]
4[color=blue][color=green][color=darkred]
>>> len(t)[/color][/color][/color]
0[color=blue][color=green][color=darkred]
>>> class Test(list):[/color][/color][/color]
def __init__(self, a, alist):
self.a = a
self = alist
[color=blue][color=green][color=darkred]
>>> t = Test(4, (1,2,3))
>>> t[/color][/color][/color]
[][color=blue][color=green][color=darkred]
>>> t.a[/color][/color][/color]
4[color=blue][color=green][color=darkred]
>>> class Test(list):[/color][/color][/color]
def __init__(self, a, alist):
self.a = a
self.__init__(a list)
[color=blue][color=green][color=darkred]
>>> t = Test(4, (1,2,3))[/color][/color][/color]
Traceback (most recent call last):
File "<pyshell#523>" , line 1, in -toplevel-
t = Test(4, (1,2,3))
File "<pyshell#522>" , line 4, in __init__
self.__init__(a list)
TypeError: __init__() takes exactly 3 arguments (2 given)
i wonder if this possible to subclass a list or a tuple and add more
attributes ? also does someone have a link to how well define is own
iterable object ?
what i was expecting was something like :
[color=blue][color=green][color=darkred]
>>> t = Test('anAttribu teValue', ['el1', 'el2'])
>>> t.anAttribute[/color][/color][/color]
'anAttributeVal ue'[color=blue][color=green][color=darkred]
>>> for x in t:[/color][/color][/color]
print x
el1
el2
and below are some real unsuccessful tests :
[color=blue][color=green][color=darkred]
>>> class Test(tuple):[/color][/color][/color]
def __init__(self, a, alist):
self.a = a
self = tuple(alist)
[color=blue][color=green][color=darkred]
>>> t = Test(1, (1,2,3))[/color][/color][/color]
Traceback (most recent call last):
File "<pyshell#486>" , line 1, in -toplevel-
t = Test(1, (1,2,3))
TypeError: tuple() takes at most 1 argument (2 given)[color=blue][color=green][color=darkred]
>>> class Test(tuple):[/color][/color][/color]
def __init__(self, (a, alist)):
self.a = a
self = tuple(alist)
[color=blue][color=green][color=darkred]
>>> t = Test((1, (1,2,3)))
>>> t.a[/color][/color][/color]
1[color=blue][color=green][color=darkred]
>>> t.a = 2
>>> t.a[/color][/color][/color]
2[color=blue][color=green][color=darkred]
>>> len(t)[/color][/color][/color]
2[color=blue][color=green][color=darkred]
>>> t[/color][/color][/color]
(1, (1, 2, 3))[color=blue][color=green][color=darkred]
>>> t[2][/color][/color][/color]
Traceback (most recent call last):
File "<pyshell#495>" , line 1, in -toplevel-
t[2]
IndexError: tuple index out of range[color=blue][color=green][color=darkred]
>>> t[1][/color][/color][/color]
(1, 2, 3)[color=blue][color=green][color=darkred]
>>> class Test(tuple):[/color][/color][/color]
def __init__(self, (a, alist)):
self.__init__(t uple(alist))
self.a = a
[color=blue][color=green][color=darkred]
>>> t = Test((1, (1,2,3)))[/color][/color][/color]
Traceback (most recent call last):
File "<pyshell#500>" , line 1, in -toplevel-
t = Test((1, (1,2,3)))
File "<pyshell#499>" , line 3, in __init__
self.__init__(t uple(alist))
File "<pyshell#499>" , line 2, in __init__
def __init__(self, (a, alist)):
ValueError: unpack tuple of wrong size[color=blue][color=green][color=darkred]
>>> class Test(tuple):[/color][/color][/color]
def __init__(self, alist, a = None):
self.__init__(t uple(alist))
self.a = a
[color=blue][color=green][color=darkred]
>>> t = Test((1,2,3), 4)[/color][/color][/color]
Traceback (most recent call last):
File "<pyshell#503>" , line 1, in -toplevel-
t = Test((1,2,3), 4)
TypeError: tuple() takes at most 1 argument (2 given)[color=blue][color=green][color=darkred]
>>> class Test(tuple):[/color][/color][/color]
def __init__(self, (alist, a = None)):
self.__init__(t uple(alist))
self.a = a
SyntaxError: invalid syntax[color=blue][color=green][color=darkred]
>>>
>>> class Test(list):[/color][/color][/color]
def __init__(self, (a, alist)):
self.a = a
self = tuple(alist)
[color=blue][color=green][color=darkred]
>>> t = Test((4, (1,2,3)))
>>> t[/color][/color][/color]
[][color=blue][color=green][color=darkred]
>>> class Test(list):[/color][/color][/color]
def __init__(self, (a, alist)):
self.a = a
self = alist
[color=blue][color=green][color=darkred]
>>> t = Test((4, (1,2,3)))
>>> t[/color][/color][/color]
[][color=blue][color=green][color=darkred]
>>> t.a[/color][/color][/color]
4[color=blue][color=green][color=darkred]
>>> len(t)[/color][/color][/color]
0[color=blue][color=green][color=darkred]
>>> class Test(list):[/color][/color][/color]
def __init__(self, a, alist):
self.a = a
self = alist
[color=blue][color=green][color=darkred]
>>> t = Test(4, (1,2,3))
>>> t[/color][/color][/color]
[][color=blue][color=green][color=darkred]
>>> t.a[/color][/color][/color]
4[color=blue][color=green][color=darkred]
>>> class Test(list):[/color][/color][/color]
def __init__(self, a, alist):
self.a = a
self.__init__(a list)
[color=blue][color=green][color=darkred]
>>> t = Test(4, (1,2,3))[/color][/color][/color]
Traceback (most recent call last):
File "<pyshell#523>" , line 1, in -toplevel-
t = Test(4, (1,2,3))
File "<pyshell#522>" , line 4, in __init__
self.__init__(a list)
TypeError: __init__() takes exactly 3 arguments (2 given)
Comment