Hiho,
ich stehe gerade vor einem ziemlich seltsamen Problem.
Bisher habe ich from wxPython.wx import * benutzt um das Modul zu importieren. Nun habe ich prübiert das etwas einzuschränken und den Befehl so umgeschrieben:
from wxPython.wx import wxFrame, wxTextCtrl, wxMenu, wxMenuBar
Und seit dem kennt Python plötzlich kein true und false mehr. An einer komplett anderen Stelle des Scriptes taucht plötzlich dieser Fehler auf:
File "runonce.py", line 144, in erweitert
zeige = true;
NameError: name 'true' is not defined
Allerdings ist an dieser Stelle weit und breit keine GUI oder dergleichen verwendet. Das ist eine eigenständige Funktion die erst mal direkt nichts mit den GUI Funktionen zu tun hat. Wenn ich wieder den alten import befehl nehme, funktioniert wieder alles. Hat irgendwer eine erklärung dazu, wie sowas zustande kommen kann? Ich meine true und false sind ja nunmal nicht ganz unwichtige Bestandteile einer Sprache, wie können die plötzlich weg kommen?
Grüsse
import und true
-
- User
- Beiträge: 63
- Registriert: Donnerstag 20. November 2003, 13:45
- Wohnort: Frankfurt/M.
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi AllesMeins,
versuchs mal mit
oder verwende unter Python 2.3 den boole-Type mit den Konstanten True bzw. False
Gruß
Dookie
versuchs mal mit
Code: Alles auswählen
from wxPython.wx import wxFrame, wxTextCtrl, wxMenu, wxMenuBar, true
Gruß
Dookie
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
True und False sind erst ab Python 2.2 vorhanden, du kannst aber eine abfrage machen:
wx definiert scheinbar selbst ein true und flase, da ist aber gar nicht schön.
Spielerei für Python 2.3 (interaktive shell):
Code: Alles auswählen
if [Python version ist kleiner als 2.2]:
True = 1
False = 0
Spielerei für Python 2.3 (interaktive shell):
Code: Alles auswählen
True + True + True
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hi. Es scheint so zu sein, weil die dann immer versionsunabhängig da sind. Das wurde wahrscheinlich nur zur besseren Lesbarkeit des Quellcodes gemacht, weil bei den vielen Nullen und Einsen kann man sonst schnell den Überblick verlieren.Leonidas hat geschrieben:wx definiert scheinbar selbst ein true und false
Milan
ps: die Abfrage der Pythonversion ist mit sys.version_info möglich.
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Es geht auch am Anfang des Scripts mit
Gruß
Dookie
Code: Alles auswählen
if not getattr(__builtins__,"True",0):
True = 1
False = 0
Gruß
Dookie
Leonidas hat geschrieben: Spielerei für Python 2.3 (interaktive shell):Code: Alles auswählen
True + True + True
[i]...und ich glaube ich habe eine Zwei gesehen[/i]
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
es gibt auch Halbwahrheiten
Dookie
Code: Alles auswählen
True/2.0
Dookie
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, ich mache es ja auch bei Python 2.1, das ist schon praktisch.Milan hat geschrieben:Hi. Es scheint so zu sein, weil die dann immer versionsunabhängig da sind. Das wurde wahrscheinlich nur zur besseren Lesbarkeit des Quellcodes gemacht, weil bei den vielen Nullen und Einsen kann man sonst schnell den Überblick verlieren
True steht auch in Python 2.3 für eine 1, aber bei type(True) ist es ein bool. Schön kompatibel.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice