Donnerstag, 8. März 2007

Python

NameError: name 'foo' is not defined - Python

Der Fehler:

NameError: name 'foo' is not defined

tritt auf, wenn man eine Variable nutzen möchte, die aber vorher nicht initialisiert wurde. So erzeugt folgender Code in Listing 1 den Fehler. Die korrigierte Fassung steht in Listing 2.

Listing 1

Download Code!

  1.  
  2. print foo
  3.  
Listing 2

Download Code!

  1.  
  2. foo = "Hallo"
  3. print foo
  4.  
Listing 3

Download Code!

  1.  
  2. try:
  3.     print foo
  4.     print '1. Beispiel okay'
  5. except NameError:
  6.     print '1. Beispiel fehlgeschlagen'
  7.  
  8. try:
  9.     print foo
  10.     print '2. Beispiel okay'
  11. except NameError:
  12.     print '2. Beispiel fehlgeschlagen'
  13.  
  14. foo = 'bar'
  15. try:
  16.     print '3. Beispiel okay'
  17. except NameError:
  18.     print '3. Beispiel fehlgeschlagen'
  19.  

Ausgabe Listing 3

1. Beispiel fehlgeschlagen
2. Beispiel okay
2. Beispiel fehlgeschlagen
3. Beispiel okay
Bewertung: 5 von 5, 1 Stimme(n) 2576 Klicks
Python
Von Mr.Foo in Python am 08.03.07@16:08 Uhr

Trackbacks
Trackback für spezifische URI dieses Eintrags

Keine Trackbacks

9 Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

tr2k - #1 - 13.03.2007 10:56 - (Antwort)

Geht es nicht eher um die Deklaration (not defined) als um die Initialisierung?
Oder ist das bei Python anders?

Anonym - #2 - 15.03.2007 12:37 - (Antwort)

Hallo tr2k,

also soweit ich weiss, gibt es in Python keine Deklaration, so wie du sie vielleicht von C oder Java her kennst.

Du musst immer eine Variable gleich mit initialisieren. Ich habe mal Listing 3 als Beispiel hinterlegt. Wie du sehen kannst funktioniert es nur im Beispiel 3.


MFG

Sebastian

Nils-Hero - #2.1 - 29.01.2008 22:06 - (Antwort)

Richtig ist natürlich der folgende Output :

1. Beispiel fehlgeschlagen
2. Beispiel fehlgeschlagen
3. Beispiel okay

Erst nach dem zweiten Beispiel wird foo deklariert und initialisiert. Und Beispiel 3 funktioniert dann.

du Pfeife, ey... Lässt so einen simplen Fehler 10 Monate auf deiner Seite herumdümpeln...

Gruß, Nils.

Mr. Foo - #2.1.1 - 29.01.2008 22:36 - (Antwort)

Recht hast du. Aber warum kommst du erst jetzt? :-)

Wärst du ein bischen früher vorbeigekommen, dann könnte ich mir vielleicht zusammenreimen was ich ursprünglich mit Beispiel 2 wollte. Da fehlt bestimmt noch etwas...

Nils-Hero - #2.1.1.1 - 30.01.2008 12:44 - (Antwort)

Sorry, mein vollautomatischer WWW-Debugger ist wegen Überlastung durchgeschmort, ich musste also alle 30 Trillionen Seiten von Hand durchgehen, sowas dauert... (;

Gruß, Nils

Nils-Hero - #2.1.1.2 - 11.02.2008 14:41 - (Antwort)

Du hast den Fehler ja immer noch nicht gefixt. Das ist mal wieder ärgerlich. Typen wie Du versauen mir die Lust gehörig, an irgend etwas kreativ mitzuwirken.

Nils

Mr. Foo - #2.1.1.2.1 - 11.02.2008 16:00 - (Antwort)

Nils My Hero!

Unterwürfigsten Dank! :-)

Nils-Hero - #2.1.1.2.1.1 - 13.02.2008 17:45 - (Antwort)

Sorry wegen den deutlichen Worten, war nicht mein Tag.

Jetzt bitte nur noch Bespiel -> Beispiel dann hör ich auf zu nerven.

Nils

Mr. Foo - #2.1.1.2.1.1.1 - 14.02.2008 00:21 - (Antwort)

Kein Thema :-)

Ob du es glaubst oder nicht - Serendipity speichert manchmal Beiträge nicht, wenn sie mit dem Firefox abgeschickt wurden.

Das ist mir wieder aufgefallen, als du so "genervt" warst - ich hatte es nämlich korrigiert (mit FF), nur wurde es nicht gespeichert.

Ich nehme an es hängt mit der NoScript Extension zusammen - ich muss das aber noch eingehend testen.


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Mr. Foo

NameError: name 'foo' is not defined - Python

  • Homepage

Suche

Kategorien

  • Android (2)
  • C-Sharp (4)
  • Datenbank (30)
  • Delphi (2)
  • Entwicklung (36)
  • Flash (5)
  • Games (10)
  • Gutscheine (4)
  • Hardware (14)
  • HTML CSS (16)
  • Internet (88)
  • Java (32)
  • Javascript (24)
  • Linkdump (9)
  • Linux (102)
  • Low-Level (10)
  • Lua (8)
  • Musik (9)
  • Netzwerk (25)
  • New World Order (109)
  • Perl (3)
  • PHP (130)
  • Magento (5)
  • Symfony (3)
  • Zend Framework (7)
  • Probleme und Lösungen (26)
  • Python (22)
  • Ressourcen (23)
  • Sicherheit (91)
  • Software (60)
  • Sonstiges (47)
  • Own Stuff (48)
  • Spass (46)
  • Technik / Wissenschaft (4)
  • Tips (15)
  • Weisheiten (17)
  • Windows (23)
  • Wort des Tages (15)


Alle Kategorien

Archive

  • Mai 2012
  • April 2012
  • März 2012
  • Das Neueste ...
  • Älteres ...

Abonnieren lohnt sich!

  • XML RSS 2.0 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Kommentare

Tagcloud

Datenbank Entwicklung Internet Java Javascript Linux Lösung Netzwerk News New World Order PHP Problem Probleme und Lösungen Sicherheit Software Sonstiges Spass Tipp Update Windows

Beliebte Einträge

  • Magento ist scheisse (197)
  • Plugin-container.exe deaktivieren (107)
  • BWin Betrug und Abzocke bei Minigames? (65)
  • C compiler cannot create executables unter Debian (53)
  • Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert) (43)
  • Sicheres Kontaktformular mit PHP - Spam verhindern (37)
  • UML-Diagramme aus Java-Klassen generieren – Java2UML (28)
  • Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden (28)
  • Option Bug im Internet Explorer bei Nutzung von innerHTML und Javascript (24)
  • Zend Studio - Javaw.exe lastet die CPU aus (24)

Kommentare

Hugo zu BWin Betrug und Abzocke bei Minigames?
So, 20.05.2012 12:25
ich habe mich gestern auf BWIN reg [...]
Ubuntu 12.04 zu The assembly mscorlib.dll was not found or could not be loaded.
Fr, 18.05.2012 17:11
Hat bei mir leider nicht geklappt. [...]
Oliver Riske zu Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden
Di, 15.05.2012 20:38
Super Danke!
anon zu BWin Betrug und Abzocke bei Minigames?
Sa, 05.05.2012 18:43
ihr scheiss betrüger
Jürgen zu Unable to elevate error:1814 VLC Problem
Mi, 02.05.2012 16:54
So einfach ist es bei mir jedenfal [...]
 

Kontakt/Informationen