Wie kann ich eine Variable/Attribut von einer anderen Klasse ausgeben?
Ich habe hier eine Klasse:
def showf():
ret, frame = cap.read()
if ret:
frame = cv2.flip(frame, 1)
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
img = PIL.Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=img)
lmn.imgtk = imgtk
lmn.configure(image=imgtk)
lmn.after(10, showf)
showf()
Dabei möchte ich die Variable "imgtk = ImageTk.PhotoImage(image=img)" in einer anderen Klasse ausgeben:
def savePicture(arg):
cv2.imwrite(os.path.join('Output_Images', img_name), imgtk)
Beide Klassen sind in einem Python file (create.py) implementiert. Doch leider bekomme ich diese Fehlermeldung:
cv2.imwrite(os.path.join('Output_Images', img_name), imgtk)
NameError: name 'imgtk' is not defined
Ich weiß, dass ich nicht einfach auf ein anderes Atriibeut von einer anderen Klasse zugreifen kann. Doch wie kann ich diese machen, dass ich auf diese Variable zugreifen kann?
2 Antworten
Du könntest die Variabel global außerhalb der Methoden/Funktionen anlegen.
Oder.
Du könntest die Variable einfach als Returning bzw. Changing Parameter statt als puren Import Parameter weitergeben.
ich weiß nicht ob das auch hier geht aber bei C++ hat man globale Variablen definiert die dann überall gegolten haben.
Ansonsten brächtest du festen Speicher wo du zuerst den Inhalt erster Variable hinkopierst um sie dann bei zweiter Variable einzuspeichern
bei OOP macht man sowas nicht , lol . auch nicht bei C++