ich bin Anfänger in Python. Mein Programm verhält sich für mich nicht erklärbar. Vielleicht hat jemand von Euch eine Idee was ich falsch mache.
Meine Klasse sieht wie folgt aus:
Code: Alles auswählen
import matplotlib.image as mpimg
class PolygonTest:
def __init__(self, fileName):
self.fileName = fileName
self.__readOriginalFile()
def __readOriginalFile(self):
self.bild = mpimg.imread(self.fileName)
return
def setRefRGB(self,x,y):
self.refRGB = self.bild[y,x]
return
def getRefRGB(self):
return self.refRGB
def markLine(self,x,y):
print("setRefRGB markLine 1:", self.refRGB) #Testausgabe
# Linie malen
self.bild[y,x][0] = 0.0 #R
self.bild[y,x][1] = 1.0 #G
self.bild[y,x][2] = 1.0 #B
print("setRefRGB markLine 2:", self.refRGB) #Testausgabe
return
Wenn ich diese nun in folgenden Programm nutze, dann verändert sich der Inhalt der Variable refRGB, obwohl ich dies nicht explizit (nach Initialisierung) tue.
Code: Alles auswählen
from polygon99 import PolygonTest
fileName = 'kurve-klein.png'
po1 = PolygonTest(fileName)
po1.setRefRGB(32,32)
po1.markLine(32,32)
die Ausgabe sieht wie folgt aus
Als wäre refRGB nur ein Zeiger auf bild[32,32]setRefRGB markLine 1: [0. 0. 0.]
setRefRGB markLine 2: [0. 1. 1.]
Für einen Hinweis wäre ich dankbar.