[Python] Probleme mit .get()


ruNN0r

Erfahrenes Mitglied
hi,
ich versuche gerade mein erstes kleines Programm zu schreiben. SOweit so gut. Es funktioniert bis jetzt auch schon gut jedoch bin ich nun auf ein kleines Problem gestoßen:
in Zeile 160-164 versuche ich Variabeln zu übergeben indem ich die Daten aus dem Textfeld mit hilfe der .get() funktion übermittle.
In der Funktion newdb() klappt das auch jedoch nicht in der funktion newds(). Evtl findet einer von euch den Fehler.

Vielen Dank
 

Anhänge

  • DVD Datenbank.zip
    4,8 KB · Aufrufe: 25

OnlyFoo

Erfahrenes Mitglied
Ich empfehle den wichtigen Code hier rein zu kopieren, da die wenigsten, mich eingeschlossen, erst lange eine Datei runterladen wollen... und welcher FEhler auftritt ist auch hilfreich...

Nagut whatever, hab ich jetzt trotzdem gemacht.

Ich kenn mich mit tkinter nicht aus, aber hier liegt wohl der Fehler:
Python:
   self.bem=str(self.bem.get())
Da überschreibst du ja self.bem...
Abgesehen davon: Dir ist bewusst, dass es auch lokale Variablen, die nur innerhalb einer Funktion gültig sind, in python gibt?

Besser wäre also:
Python:
   bem = self.bem.get()
   # mach was mit lokaler Variable bem
   
   # oder auch
   self.sql = "CR...."
   # besser einfach
   sql = "CR...."
   # mach was mit sql

Diese Variablen brauchste ja schließlich nur in dem aktuellen Durchlauf der aktuellen Funktion und sonst nirgens
 

ruNN0r

Erfahrenes Mitglied
Hi,
erstmal danke für deine Hilfe. Ich habe nur alles angehängt weil ich nicht wusste wo der Fehler liegt. Hätte ja auch sein können das der ganz wo anders ist als wo ich den vermute. Wie dem auch sei...

Folgende Fehlermeldung bekomme ich:
Code:
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python31\lib\tkinter\__init__.py", line 1399, in __call__
    return self.func(*args)
  File "C:\Users\ruNN0r\Desktop\Python\DVD Datenbank\main.py", line 160, in setnewds
    self.namecd1=str(self.namecd.get())
AttributeError: 'NoneType' object has no attribute 'get'
das mit dem self.bem ich ich wohl übersehen aber war leider auch nicht der fehler :(

Zu deinem Tip:
Besten Dank, ich werde mal sehen das ich das Programm demnach abänder. Bin ja aber noch am üben ;)