Python List overskriver

Python List overskriver


Python lar programmerere lage objekter som kalles lister for å lagre og hente flere elementer når tilkalt. Disse objektene er svært nyttig, men måten Python håndterer objekter og variabler skaper noen fallgruver som både nybegynnere og middels programmerere bør være klar over før de finner dataelementer i sine lister blir på mystisk vis overskrevet med andre data.

Python Lister

Python liste objekt oppfører seg mer som Javas Arraylist objekt enn det gjør en vanlig array. Programmereren trenger ikke å erklære størrelsen på matrisen når han skaper den, og Python vil automatisk øke listen størrelse for å imøtekomme flere oppføringer som brukeren legger. Python lister er også betydelig mer fleksibel enn andre arraylike datastrukturer ved at de kan inneholde forskjellige gjenstander og variable datatyper på samme tid.

Python objekter

Som arrays på andre språk, kan programmerere velge å plassere elementer inne i en Python liste ved direkte tilordne dataene til en bestemt indeks nummer på listen. Han gjør dette med syntaksen "list [n] = new-data" der "liste" er navnet på listen objekt, "n" er element nummer programmerer tilordner data til, og «ny-data" er dataene programmereren tilordner til listeelement. Hvis det er data i den gruppeelementutbyttende, vil det bli overskrevet.

klasse~~POS=TRUNC

En måte at Python programmerere feilaktig overskriver hele lister, snarere enn bestemte komponenter, er når de erklærer en liste som en klasse liste i stedet for en metode listen. Når Python instantiates flere objekter fra en klasse erklæring, de er uavhengig funksjonelle, og endringer i variablene av en ikke vil påvirke variabler av en annen. Men når en programmerer erklærer en liste utsiden av en hvilken som helst metode, er det en klasselisten. Denne listen vil være felles for alle objekt tolken gjør fra klassen erklæringen, så endringer i denne listen fra ett objekt vil føre sine verdier for å endre på alle andre objekt.

Riktig Kopiering Lister

En vanlig feil for programmerere å komme til Python fra en annen språk er til syntaksen "list-copy = list-original" for å lage en kopi av "list-originale" kalt "ny-listen." I Python, men dette fører til både "list-kopi" og "list-original" peker på de samme verdiene i minnet. Følgelig, når programmereren endrer elementverdier i "list-kopi," han vil finne at hans endringer overskrev det opprinnelige innholdet i "list-originale" også. Syntaksen "list-copy = liste (liste-original)", vil data kopieres innholdet i "list-originale" inn "list-kopi" uten endringer i en påvirker den andre.