Problem mit init default
Verfasst: Montag 11. Januar 2010, 11:24
Hallo alle!
Ich habe ein Problem das ich habe selbs loesen koennen, dessen Ursache mir aber unklar ist:
Ich habe eine Klasse
die eine liste speichert.
Will ich nun eine liste von angle listen initialisieren mit
so wuerde
auf das selbe list objekt zeigen wie
usw.
Das Problem aussert sich durch die append funktion.
Haenge ich an classRotations[0].__list was an, so erscheint es in allen anderen.
Loesung -
Gebe neues listen objekt in die init funktion mit, welches dem __list attribut zugewiesen wird. dann unterscheiden sich alle listen voneinandern.
Kann mir jemand die Ursache zu dem Problem nennen?
Viellen Dank,
Thomas
ps: das problem hatte ich schon oeffter, deswegen interessiert es mich dringend... ist es ein Feature von Python oder eher ein Fehler?
:K
Ich habe ein Problem das ich habe selbs loesen koennen, dessen Ursache mir aber unklar ist:
Ich habe eine Klasse
Code: Alles auswählen
class AngleList(AngleObject):
"""
AngleList : Derives from AngleObject. Can be used to perform calculations on arbitrary rotation lists.
@var __list: The list stored
@var __currentIndex: Current index used in nextRotation
"""
__list = [];
__currentIndex = 0;
def __init__(self,list):
"""
@param list: Either [] or a list of rotations - [ [phi,psi,theta], [phi,psi,theta], [phi,psi,theta] ,...]
"""
self.__list = list;
Will ich nun eine liste von angle listen initialisieren mit
Code: Alles auswählen
classRotations = [AngleList() for _ in xrange(10)];
Code: Alles auswählen
classRotations[0].__list
Code: Alles auswählen
classRotations[1].__list
Das Problem aussert sich durch die append funktion.
Haenge ich an classRotations[0].__list was an, so erscheint es in allen anderen.
Loesung -
Code: Alles auswählen
classRotations = [AngleList([]) for _ in xrange(10)];
Kann mir jemand die Ursache zu dem Problem nennen?
Viellen Dank,
Thomas
ps: das problem hatte ich schon oeffter, deswegen interessiert es mich dringend... ist es ein Feature von Python oder eher ein Fehler?
:K