Gültigkeit/Referenz von Instanzvariablen
Verfasst: Mittwoch 16. Januar 2019, 13:53
Hallo,
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:
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.
die Ausgabe sieht wie folgt aus
Für einen Hinweis wäre ich dankbar.
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.