M
Michele Simionato
Let me show first how does it work for tuples:
.... def __new__(cls,strng): # implicit conversion string of ints => tuple
.... return super(MyTuple,cls).__new__(cls,map(int,strng.split()))(1, 2)
No wonder here, everything is fine. However, if I do the same for
lists I get the following:
.... def __new__(cls,strng): #implicit conversion string of ints => tuple
.... return super(MyList,cls).__new__(cls,map(int,strng.split()))['1', ' ', '2']
The same is true for
.... def __new__(cls,strng):
.... return list.__new__(cls,map(int,strng.split()))['1', ' ', '2']
therefore it is not a problem of super.
The 'map' expression does not seem to be executed or, if its executed,
it has no effect at all. If I replace 'map' with anything, still I have
the same result:
.... def __new__(cls,strng):
.... return list.__new__(cls,map(int,[]) # !notice: empty list here!['1', ' ', '2']
In other words I always get the result of
['1', ' ', '2']
and it seems impossible to override list.__new__.
I am very puzzled about that; any suggestions?
Michele
.... def __new__(cls,strng): # implicit conversion string of ints => tuple
.... return super(MyTuple,cls).__new__(cls,map(int,strng.split()))(1, 2)
No wonder here, everything is fine. However, if I do the same for
lists I get the following:
.... def __new__(cls,strng): #implicit conversion string of ints => tuple
.... return super(MyList,cls).__new__(cls,map(int,strng.split()))['1', ' ', '2']
The same is true for
.... def __new__(cls,strng):
.... return list.__new__(cls,map(int,strng.split()))['1', ' ', '2']
therefore it is not a problem of super.
The 'map' expression does not seem to be executed or, if its executed,
it has no effect at all. If I replace 'map' with anything, still I have
the same result:
.... def __new__(cls,strng):
.... return list.__new__(cls,map(int,[]) # !notice: empty list here!['1', ' ', '2']
In other words I always get the result of
['1', ' ', '2']
and it seems impossible to override list.__new__.
I am very puzzled about that; any suggestions?
Michele