Das ist doch erst dann richtig lustig, wenn du die builtins monkeypatchst und damit True und False auch in allen anderen Modulen verkehrt rum funktionierenpenguin-p hat geschrieben:Hach mein geschätztes raw_input *schnief*
Was ich aber noch viel tragischer finde ist, dass True und False in Python3000 Schlüsselwörter werden. Das war immer so ein lustiger Zeitvertreib:Code: Alles auswählen
>>> a = True >>> True = False >>> False = a >>> True False >>> False True
Python 3000 alpha1 ist draußen!...
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Ich fand es zuerst ganz schlecht das `print` zu einer Funktion wurde.
Bin aber nun froh das es so ist, ein Anwendungsfall:
Ich kann also das `standard` print zum Beispiel einfach überschreiben und dann alles was sonst geprintet wurden wäre in eine Datei um leiten oder ähnliches.
Die viele gute Sachen bei Python bleiben ja immer noch.
Bin aber nun froh das es so ist, ein Anwendungsfall:
Code: Alles auswählen
sr4l@LARS:~$ python3.0
Python 3.0a1 (py3k, Sep 1 2007, 03:28:18)
[GCC 3.4.6 (Ubuntu 3.4.6-5ubuntu1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Test")
Test
>>> def print(value):
... handle = open("output.txt","a")
... handle.write(value)
... handle.close()
...
>>> print("Test")
>>>
Die viele gute Sachen bei Python bleiben ja immer noch.
Wie umständlich !Sr4l hat geschrieben:Ich kann also das `standard` print zum Beispiel einfach überschreiben und dann alles was sonst geprintet wurden wäre in eine Datei um leiten oder ähnliches.
Die viele gute Sachen bei Python bleiben ja immer noch.
Code: Alles auswählen
fl = open("foo.txt", "w")
print("foobaaaar!!!", file=fl)
fl.close
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Genau. Entweder sys.stdout umeiten oder (Achtung, dämliche Syntax) ``print >>sys.stdout "Irgendwas`` wobei man ``sys.stdout`` gegen ein file-like-Objekt tauscht.veers hat geschrieben:Du kannst print auch jetzt umleiten in dem du stdout umleitest.
Ich werde mit dem Python 3.0 testen erst anfangen wenn jemand es für Debian paketiert, damit ich es Backporten kann. So spannend ist es nun auch nicht, denn im SVN war es schon lange verfügbar, also hätte man es sich schon vorher laden können.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Der >> Operator wird doch bereits für das shifting benutzt, oder?... Auf jedenfall funktioniert dein Beispiel nich so.
Vielleicht bin ich auch zu unfähig..
(Debian müsste es doch auch wie Arch Linux machen bei Python Versionen... Das bedeutet das Python 3.0 extra gekennzeichnet wird und die stabile 2.5 Installation nicht beeinflussen sollte. So kenn ich das zumindest bei Linux...)
Vielleicht bin ich auch zu unfähig..
(Debian müsste es doch auch wie Arch Linux machen bei Python Versionen... Das bedeutet das Python 3.0 extra gekennzeichnet wird und die stabile 2.5 Installation nicht beeinflussen sollte. So kenn ich das zumindest bei Linux...)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Stimmt, da fehlt ein Komma:BlackVivi hat geschrieben:Der >> Operator wird doch bereits für das shifting benutzt, oder?... Auf jedenfall funktioniert dein Beispiel nich so.
Code: Alles auswählen
In [289]: print >>sys.stdout, 'Irgendwas'
Irgendwas
Ist doch auch so...BlackVivi hat geschrieben:(Debian müsste es doch auch wie Arch Linux machen bei Python Versionen... Das bedeutet das Python 3.0 extra gekennzeichnet wird und die stabile 2.5 Installation nicht beeinflussen sollte. So kenn ich das zumindest bei Linux...)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Dann verwirrst du mich. Wieso willst du es dann backporten oO?... Zu was? Python3.0 is dann ein eigenes Paket was du ohne Einfluss auf dein Python 2.5 System entfernen kannst mit Aptitude.
Der Quellcode funktioniert übrigens immernoch nich...
Ich bin wohl doch zu unfähig.
Edit: Ach, wie logisch. Unter IPython funktionierts natürlich genauso. Aber auch mit älteren Pythonversionen
IPython scheint die Pipingfunktion des Terminals zu übernehmen. Aber der Pythoninterpreter alleine kann mit dem Operator >> nichts anfangen... außer als Binäroperator. Aber das weißt du ja selber.
Mit Python 2.5 geht's... in Python 3 nich.
Der Quellcode funktioniert übrigens immernoch nich...
Code: Alles auswählen
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and
'TextIOWrapper'
Edit: Ach, wie logisch. Unter IPython funktionierts natürlich genauso. Aber auch mit älteren Pythonversionen
IPython scheint die Pipingfunktion des Terminals zu übernehmen. Aber der Pythoninterpreter alleine kann mit dem Operator >> nichts anfangen... außer als Binäroperator. Aber das weißt du ja selber.
Mit Python 2.5 geht's... in Python 3 nich.
Zuletzt geändert von BlackVivi am Samstag 1. September 2007, 19:40, insgesamt 3-mal geändert.
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Es ging mir ums Prinzip. Man ändert nichts am Code man lässt sich alles normal printen und füngt sich einfach nur noch ne `def print()` hinzu und hat was neues.BlackVivi hat geschrieben:Wie umständlich !Sr4l hat geschrieben:Ich kann also das `standard` print zum Beispiel einfach überschreiben und dann alles was sonst geprintet wurden wäre in eine Datei um leiten oder ähnliches.
Die viele gute Sachen bei Python bleiben ja immer noch.
Code: Alles auswählen
fl = open("foo.txt", "w") print("foobaaaar!!!", file=fl) fl.close
man könnte auch einfach:
Code: Alles auswählen
def print(value):
pass
Natürlich kann man auch in Python 2.X sich seine eigene def print machen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Zu Etch will ich es Backporten. Aus Sid. Oder Lenny. Wenn man ein Paket aus einer dieser Versionen nimmt und es auf die stable Distribution neukompiliert dann heißt das nun mal backporten.BlackVivi hat geschrieben:Dann verwirrst du mich. Wieso willst du es dann backporten oO?... Zu was? Python3.0 is dann ein eigenes Paket was du ohne Einfluss auf dein Python 2.5 System entfernen kannst mit Aptitude.
Sicher funktioniert der. Tipp ihn im Interpreter so ein, wie ich ihn geschrieben habe.BlackVivi hat geschrieben:Der Quellcode funktioniert übrigens immernoch nich...
Es funktioniert sowohl unter IPython aus auch im normalen interpreter, denn es ist einfach gültige Python-Syntax. Die Pipingfunktion des Terminals hat damit nichts zu tun, denn gilt nur wenn du Prozesse aufrufst.BlackVivi hat geschrieben:Edit: Ach, wie logisch. Unter IPython funktionierts natürlich genauso. Aber auch mit älteren Pythonversionen
IPython scheint die Pipingfunktion des Terminals zu übernehmen. Aber der Pythoninterpreter alleine kann mit dem Operator >> nichts anfangen... außer als Binäroperator. Aber das weißt du ja selber.
Klar, denn wenn ``print`` kein Statement ist, braucht man keine so krüpplige Syntax mehr.BlackVivi hat geschrieben:Mit Python 2.5 geht's... in Python 3 nich.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Ach Leute, wenn print euer einziges Problem ist...
Da geht noch was!BlackVivi hat geschrieben:Code: Alles auswählen
fl = open("foo.txt", "w") print("foobaaaar!!!", file=fl) fl.close
Code: Alles auswählen
with open('foo.txt', 'w') as f:
print("I know kung foo.", file=f)
- paedubucher
- User
- Beiträge: 30
- Registriert: Donnerstag 29. Juni 2006, 18:29
- Wohnort: Schweiz
- Kontaktdaten:
Meine grösste Hoffnung für Python 3000 ist ein "anständiges" GUI-Toolkit. Dabei denke ich besonders an eine Portierung eines plattformunabhängigen Toolkits wie wxWidgets oder Qt. wxWidgets - bzw. wxPython - wäre mir lieber, da es auf Linux auf die GTK-Komponenten zurück greift.
Tkinter ist tot, etwas neues muss her!
Tkinter ist tot, etwas neues muss her!
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Es ist dir hoffentlich nicht entgangen, dass es wxPython und PyQt auch schon für Python 2 gab
Integriert wird in Python 3 jedenfalls keines davon, dafür sind sie einfach zu groß.
Integriert wird in Python 3 jedenfalls keines davon, dafür sind sie einfach zu groß.