global name is not defined

Fragen zu Tkinter.
Antworten
4bit
User
Beiträge: 113
Registriert: Dienstag 5. Mai 2009, 11:27

Huhu,

falls es an der Struktur liegt: die sieht so aus

Code: Alles auswählen

Class Application(..)
     def transition(..):
     def createWidgets(..):
          ...
          transition(..)
          ...
     def __init__(..):
Jedenfalls steigt der Compiler beim Aufruf von transition in createWidgets aus, mit der Fehlermeldung:
NameError: global name 'transition' is not defined

Vorhin hat der Aufbau aber genauso funktioniert. Kennt Jemand diesen Fehler?

Danke,
[/4bit]
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

1. Sollte man zumindest die komplette Funktionssignatur posten, wenn man schon Code kürzt.
2. Ist `translation` wohl eine Methode - und hier kommt die Signatur ins Spiel, denn ohne die kann man das aber nicht sicher sagen.
Versuch mal `self.transition(...)` statt `transition(...)`

P.S. Schau dir mal [wiki]PEP 8 (Übersetzung)[/wiki] und oder das Orginal an.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

4bit hat geschrieben:Vorhin hat der Aufbau aber genauso funktioniert. Kennt Jemand diesen Fehler?
Nein, das hat so garantiert nie funktioniert.

transition() soll vermutlich die Methode einer Application-Instanz sein/werden, also musst du sie auch so aufrufen. Falls dir das nicht hilft: Lies mal den Abschnitt im Tutorial über OOP.

Und: Falsches Unterforum ...
4bit
User
Beiträge: 113
Registriert: Dienstag 5. Mai 2009, 11:27

Seltsam, vorhin hat der Aufbau wirklich genau so funktioniert.. Ich bin mir aber sicher, daß ich nicht "self." weggenommen hätte..

Die Funktion transition im globalen Bereich definiert "funktioniert" ohne Fehlermeldung.

Anyways,

Danke.
Antworten