Python wird immer komplizierter
Jede ernst zu nehmende Erweiterung des eingebauten BASICs hat auch einen RENUMBER-Befehl mit dem man Zeilen neu durchnummerieren kann, wobei selbstverständlich die Sprungbefehle angepasst werden. So etwas selber zu schreiben ist auch eine gute Übung, ob man das interne Speicherformat von BASIC auf dem C64 verstanden hat.
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Dabei sind wir noch gar nicht bei den Lochkarten angekommen.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
-
- User
- Beiträge: 18
- Registriert: Mittwoch 15. Februar 2006, 23:20
- Wohnort: Linz.at
- Kontaktdaten:
Und noch eine Anmerkung zu Metaklassen, die du auch kritisiert hast. Das Typ/Objekt/Instanz System in Python weicht etwas vom klassischen Ansatz der meisten anderen Programmiersprachen ab und ist deshalb auch nicht so einfach zu verstehen.
Zum einen braucht man Metaklassen aber sowieso eher selten und wenn dann lassen sie sich auch gut verstecken und tragen wesentlich zur besseren Lesbarkeit und Einfachheit des Programms bei. Das beste Beispiel hier sind wohl die Django Model Klassen, welche beim Erzeugen auch gleich alle SQL-Statements anlegen und auführen, aber es gibt auch noch eine Vielzahl von anderen Klassen wo man es vermutlich gar nicht merkt.
Also mir gefällt die Entwicklung bei Python bis jetzt noch sehr gut und hoffe das die Performance von Py3k (genauer gesagt von der CPython Version) auch noch etwas zunimmt bis zum Release.
Gruß
Christoph
Zum einen braucht man Metaklassen aber sowieso eher selten und wenn dann lassen sie sich auch gut verstecken und tragen wesentlich zur besseren Lesbarkeit und Einfachheit des Programms bei. Das beste Beispiel hier sind wohl die Django Model Klassen, welche beim Erzeugen auch gleich alle SQL-Statements anlegen und auführen, aber es gibt auch noch eine Vielzahl von anderen Klassen wo man es vermutlich gar nicht merkt.
Also mir gefällt die Entwicklung bei Python bis jetzt noch sehr gut und hoffe das die Performance von Py3k (genauer gesagt von der CPython Version) auch noch etwas zunimmt bis zum Release.
Gruß
Christoph
[url]http://www.ubuntuusers.de[/url]
bitte einen Grundkurs!Rebecca hat geschrieben:Dabei sind wir noch gar nicht bei den Lochkarten angekommen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
War heute im Buchladen und habe mir die dritte Ausgabe von "Programming Python" angesehen, die für Python 2.5 aktualisiert wurde. Das Buch hat stolze 1600 Seiten und ist noch um einige Seiten dicker als Programming Ruby (Pickaxe)
Ich glaube ich habe in all den Jahren zusammen nie 1600 Seiten Python-Dokumentation gelesen
Ich glaube ich habe in all den Jahren zusammen nie 1600 Seiten Python-Dokumentation gelesen
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
das steht hier neben mir auf dem Tisch ... und das ist sooo schwer........ und es past auch nicht in die Handtasche und schon gar nicht mit Notebook zusammen ..... aber gelesen hab ich es noch lange nicht fertig ....Leonidas hat geschrieben:War heute im Buchladen und habe mir die dritte Ausgabe von "Programming Python" angesehen, die für Python 2.5 aktualisiert wurde. Das Buch hat stolze 1600 Seiten und ist noch um einige Seiten dicker als Programming Ruby (Pickaxe)
Ich glaube ich habe in all den Jahren zusammen nie 1600 Seiten Python-Dokumentation gelesen
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Sprachtechnisch kann man mit Python wohl weniger machen, aber die Stdlib scheint mir doch etwas umfangreicher zu sein - das will auch alles beschrieben sein. Allerdings habe ich das Buch nicht, wenn ich mir das Inhaltsverzeichnis ansehe scheinen da aber auch ziemlich viele nicht wirklich interessante Themen zu sein. So sind die Kapitel über Tkinter arg lang, und Server Side Scripting sollte wohl aus dem Buch inzwischen entfernt werden.
Wahrscheinlich kommt eben so die große Seitenanzahl zusammen.
Wahrscheinlich kommt eben so die große Seitenanzahl zusammen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Thread mal wieder herauf holt.
Muss ja nicht für alles ein neuer aufgemacht werden.
Mir geht es hier in dem Fall um print, da dies unter anderem auch angesprochen wurde.
Wenn ich das richtig verstanden haben, wird print also eine Funktion und kann somit mit:
Texte ausgeben?
Was derzeit übrigens auch geht, bzw. sind das dann Listings.
Und genau an dem Punkt komme ich jetzt total durcheinander.
Wenn man
eingibt, gibt er ja eine Listing von "('var1','var2','var3')" aus.
Anders als wenn man
schreibt.
Da spuckt er jedes einzeln aus, also ohne Klammern = "var1,var2,var3".
Wie funktioniert dann mit dem neuen print als Funktion dann noch das Listing??
Muss ja nicht für alles ein neuer aufgemacht werden.
Mir geht es hier in dem Fall um print, da dies unter anderem auch angesprochen wurde.
Wenn ich das richtig verstanden haben, wird print also eine Funktion und kann somit mit:
Code: Alles auswählen
print('variable')
Was derzeit übrigens auch geht, bzw. sind das dann Listings.
Und genau an dem Punkt komme ich jetzt total durcheinander.
Wenn man
Code: Alles auswählen
print('var1','var2','var3')
Anders als wenn man
Code: Alles auswählen
print 'var1','var2','var3'
Da spuckt er jedes einzeln aus, also ohne Klammern = "var1,var2,var3".
Wie funktioniert dann mit dem neuen print als Funktion dann noch das Listing??
Ich mache nie einen Fehler Zweimal.
Schließlich ist die Auswahl ja groß genug.
Schließlich ist die Auswahl ja groß genug.
Was Du das als "Listing" bezeichnest heisst Tupel. Und Deine Ausgabe für das 2.5er ``print`` ohne Klammern dürfte keine Kommata enthalten.
Ich weiss jetzt ehrlich gesagt nicht so ganz was Du wissen willst. Wenn Du in Python 3.x ein Tupel ausgeben willst, dann musst Du das genau wie in 2.5 einfach angeben.
In 3.0:
In 2.5:
Da ist abgesehen von einem Klammerpaar kein Unterschied zwischen den beiden Versionen.
Ich weiss jetzt ehrlich gesagt nicht so ganz was Du wissen willst. Wenn Du in Python 3.x ein Tupel ausgeben willst, dann musst Du das genau wie in 2.5 einfach angeben.
In 3.0:
Code: Alles auswählen
>>> print('var1', 'var2', 'var3')
var1 var2 var3
>>> print(('var1', 'var2', 'var3'))
('var1', 'var2', 'var3')
Code: Alles auswählen
In [27]: print 'var1', 'var2', 'var3'
var1 var2 var3
In [28]: print ('var1', 'var2', 'var3')
('var1', 'var2', 'var3')
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
Hi Erwin!
Ich vermute du fragst dich, was genau passiert wenn man sowas hier macht (Python 2.5):
Das ist ganz einfach. Die Print-Anweisung gibt nacheinander jedes arg aus, indem es die stringrepresentation (arg.__repr__) des Objektes zurueckgibt. Die Anweisung ist also das gleiche wie zB:
Das Komma hat in dem Fall den Effekt, dass kein Zeilenumbruch angehaengt wird, nachdem arg ausgegeben wurde.
Solange du Rueckgabewerte hast, kannst du so alles moegliche ausgeben, (fast) ohne auf den Objekttyp achten zu muesen (immernoch Python 2.5):
Ausgabe:
Ich vermute du fragst dich, was genau passiert wenn man sowas hier macht (Python 2.5):
Code: Alles auswählen
print arg1, arg2, arg3
Code: Alles auswählen
print arg1,
print arg2,
print arg3
Solange du Rueckgabewerte hast, kannst du so alles moegliche ausgeben, (fast) ohne auf den Objekttyp achten zu muesen (immernoch Python 2.5):
Code: Alles auswählen
def rueckgabefunktion():
return "bla", "blub"
print 5, "5", (5,5), [5,5], {"5": 5}, True, False, None, rueckgabefunktion
Code: Alles auswählen
5 5 (5, 5) [5, 5] {'5': 5} True False None ('bla', 'blub')
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Tulpel, stimmt.
Bringe die Beiden immer durcheinander.
Stimmt ja.
Einfach noch mal Klammern machen.
War wohl derzeit total durcheinander.
Hatte es Heute einfach mal getestet, ob es nicht schon bei 2.5 geht, da kam bei
Beiden das gleiche raus.
Dachte deshalb, dass es bereits mit 2.5 möglich ist.
Inzwischen fiel mir aber ein, dass keins von den Beiden ein Tulpel ist, weil ja ein Komma fehlt:
Hat mich alles leider durcheinander gebracht.
Sorry.
Ob man vielleicht eine Zusammenfassung erstellen kann, über die Veränderungen?
Und zwar im Positiven Sinne.
Wo man also vor allem die Vorteile hervorhebt?
Wäre für mich, der etwas gegen ständigem Wechsel (von einer Version zur nächsten ... ) was hat, sehr hilfreich.
Oder gibt es schon so was auf Deutsch?
Wie sieht es eigentlich mit der Zukunft von 2.5 aus?
Wird es dies dann irgendwann nicht mehr geben?
Oder wird es auch weiterhin zur Verfügung stehen und problemlos auf derzeitige BS und auch auf neuere BS installiert werden können?
edit:
@ nkoehring
Nun, diese Frage stellte sich indirekt zugleich mit der Frage, wie man Tulpel macht, oder umgekehrt (nicht macht).
Bzw. wie print dann auseinander halten soll, was Tulpel ist, und was jeweils einzeln ausgeben werden soll.
Aber das man dann für Tulpel zusätzlich noch mal eine Klammer macht, wäre eigentlich ja das naheligenste gewesen.
Bringe die Beiden immer durcheinander.
Stimmt ja.
Einfach noch mal Klammern machen.
War wohl derzeit total durcheinander.
Hatte es Heute einfach mal getestet, ob es nicht schon bei 2.5 geht, da kam bei
Code: Alles auswählen
print 'var1'
print('var1')
Dachte deshalb, dass es bereits mit 2.5 möglich ist.
Inzwischen fiel mir aber ein, dass keins von den Beiden ein Tulpel ist, weil ja ein Komma fehlt:
Code: Alles auswählen
print('var1',)
Sorry.
Ob man vielleicht eine Zusammenfassung erstellen kann, über die Veränderungen?
Und zwar im Positiven Sinne.
Wo man also vor allem die Vorteile hervorhebt?
Wäre für mich, der etwas gegen ständigem Wechsel (von einer Version zur nächsten ... ) was hat, sehr hilfreich.
Oder gibt es schon so was auf Deutsch?
Wie sieht es eigentlich mit der Zukunft von 2.5 aus?
Wird es dies dann irgendwann nicht mehr geben?
Oder wird es auch weiterhin zur Verfügung stehen und problemlos auf derzeitige BS und auch auf neuere BS installiert werden können?
edit:
@ nkoehring
Nun, diese Frage stellte sich indirekt zugleich mit der Frage, wie man Tulpel macht, oder umgekehrt (nicht macht).
Bzw. wie print dann auseinander halten soll, was Tulpel ist, und was jeweils einzeln ausgeben werden soll.
Aber das man dann für Tulpel zusätzlich noch mal eine Klammer macht, wäre eigentlich ja das naheligenste gewesen.
Ich mache nie einen Fehler Zweimal.
Schließlich ist die Auswahl ja groß genug.
Schließlich ist die Auswahl ja groß genug.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Falsch, es hat nichts mit Tulpen zu tun - es heißt Tupel. Und das andere sind nicht Listings oder Arrays sondern Listen.Erwin hat geschrieben:Tulpel, stimmt.
Es wird ein "What's New in Python 3.0" geben, so wie es für die Versionen davor das auch schon gab.Erwin hat geschrieben:Ob man vielleicht eine Zusammenfassung erstellen kann, über die Veränderungen?
Und zwar im Positiven Sinne.
Wo man also vor allem die Vorteile hervorhebt?
Python 2.5 wird es solange geben, solange es die Daten noch gibt, es wird nicht irgendwann mal global implodieren und verschwinden. Die Tarballs von 2.5 wirst du auch sicherlich noch auf zukünftigen Unices kompilieren und nutzen können, die Windows-Versionen werden vermutlich auch in zukünftigen Windows-Versionen laufen. Es wird eben das passieren was 2.3 passiert ist - es wurde von 2.4 ersetzt. 2.5 wird auch ersetzt werden - durch 2.6 und 3.0.Erwin hat geschrieben:Wie sieht es eigentlich mit der Zukunft von 2.5 aus?
Wird es dies dann irgendwann nicht mehr geben?
Oder wird es auch weiterhin zur Verfügung stehen und problemlos auf derzeitige BS und auch auf neuere BS installiert werden können?.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Tupel und Listen.
Hoffe mir passiert so schnell der Fehler nicht noch mal.
Ist ja nicht nur peinlich, sondern Jemand anders übernimmt dass dann vielleicht auch noch falsch.
Aber je länger ja Python gibt, desto mehr besteht wohl die Chance, dass es übersetzt wird?
Was weiß man eigentlich so vorab?
Gibt es, wenn man mit 2.5 weiter macht, vieles, was man beachten sollte, wenn man den gleichen Code dann für 3.0 verwenden will?
Geht das auch für Linux? Also für Linux BS?
Insgesamt scheint mir, habe ich meine Frage nicht richtig gestellt.
Versuche ich es anders, zu mal Gewisse Dinge sich wohl scheinbar nicht vermeiden lassen.
Will mal versuchen, zu akzeptieren, dass ich halt auf 3.0 umsteigen muss:
Aber wie mache ich es, oder wie machen das dann Andere, die gerade an einem großen Projekt sind, und dies dann auf Python 3.0 umstellen wollen/müssen?
Gibt es dann Hilfswerkzeuge, die zum Beispiel aus "print 'var1'", dann "print('var1')" machen?
Und wie kommt Ihr vor allem damit zurecht?
Weil für mich ist das nicht nur frustrierend, sondern wenn ich etwas gemachtes wieder machen muss (print-Zeilen neu schreiben) dann ist das für mich ein Rückschritt. Ein Gefühl von, ich komme nie weiter, alles Zeitvergeudung.
Hoffe mir passiert so schnell der Fehler nicht noch mal.
Ist ja nicht nur peinlich, sondern Jemand anders übernimmt dass dann vielleicht auch noch falsch.
Also vermutlich auf Englisch?Leonidas hat geschrieben: Es wird ein "What's New in Python 3.0" geben, so wie es für die Versionen davor das auch schon gab.
Aber je länger ja Python gibt, desto mehr besteht wohl die Chance, dass es übersetzt wird?
Was weiß man eigentlich so vorab?
Gibt es, wenn man mit 2.5 weiter macht, vieles, was man beachten sollte, wenn man den gleichen Code dann für 3.0 verwenden will?
Kompilieren?Leonidas hat geschrieben:Python 2.5 wird es solange geben, solange es die Daten noch gibt, es wird nicht irgendwann mal global implodieren und verschwinden. Die Tarballs von 2.5 wirst du auch sicherlich noch auf zukünftigen Unices kompilieren und nutzen können, die Windows-Versionen werden vermutlich auch in zukünftigen Windows-Versionen laufen. Es wird eben das passieren was 2.3 passiert ist - es wurde von 2.4 ersetzt. 2.5 wird auch ersetzt werden - durch 2.6 und 3.0.
Geht das auch für Linux? Also für Linux BS?
Insgesamt scheint mir, habe ich meine Frage nicht richtig gestellt.
Versuche ich es anders, zu mal Gewisse Dinge sich wohl scheinbar nicht vermeiden lassen.
Will mal versuchen, zu akzeptieren, dass ich halt auf 3.0 umsteigen muss:
Aber wie mache ich es, oder wie machen das dann Andere, die gerade an einem großen Projekt sind, und dies dann auf Python 3.0 umstellen wollen/müssen?
Gibt es dann Hilfswerkzeuge, die zum Beispiel aus "print 'var1'", dann "print('var1')" machen?
Und wie kommt Ihr vor allem damit zurecht?
Weil für mich ist das nicht nur frustrierend, sondern wenn ich etwas gemachtes wieder machen muss (print-Zeilen neu schreiben) dann ist das für mich ein Rückschritt. Ein Gefühl von, ich komme nie weiter, alles Zeitvergeudung.
Ich mache nie einen Fehler Zweimal.
Schließlich ist die Auswahl ja groß genug.
Schließlich ist die Auswahl ja groß genug.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Die Möglichkeit besteht, aber die vorhergehenden "What's New"-Dokumente waren auch auf Englisch idR leicht zu verstehen. Nur ihre Fülle war ein Problem.Erwin hat geschrieben:Also vermutlich auf Englisch?Leonidas hat geschrieben: Es wird ein "What's New in Python 3.0" geben, so wie es für die Versionen davor das auch schon gab.
Aber je länger ja Python gibt, desto mehr besteht wohl die Chance, dass es übersetzt wird?
Alles was in den PEPs 3000 und folgenden steht.Erwin hat geschrieben:Was weiß man eigentlich so vorab?
Ja, man sollte beachten, dass man nicht versuchen sollte Code sowohl für 3.0 als auch 2.x zu schreiben.Erwin hat geschrieben:Gibt es, wenn man mit 2.5 weiter macht, vieles, was man beachten sollte, wenn man den gleichen Code dann für 3.0 verwenden will?
Natürlich. Ich habe mir mein Python auf Gentoo Linux selbst kompiliert, das ist alles überhaupt kein Problem.Erwin hat geschrieben:Kompilieren?
Geht das auch für Linux? Also für Linux BS?
Ja, der Konverter heißt 2to3.Erwin hat geschrieben:Will mal versuchen, zu akzeptieren, dass ich halt auf 3.0 umsteigen muss:
Aber wie mache ich es, oder wie machen das dann Andere, die gerade an einem großen Projekt sind, und dies dann auf Python 3.0 umstellen wollen/müssen?
Gibt es dann Hilfswerkzeuge, die zum Beispiel aus "print 'var1'", dann "print('var1')" machen?
Ganz einfach. Code in 2to3 füttern, ggf. Probleme von Hand ausbessern - fertig. Sich über saubereren Code freuen.Erwin hat geschrieben:Und wie kommt Ihr vor allem damit zurecht?
Du darfst auch gerne noch jahrelang 2.x nutzen, 3.x wird sich sowieso nicht sonderlich schnell durchsetzen.Erwin hat geschrieben:Weil für mich ist das nicht nur frustrierend, sondern wenn ich etwas gemachtes wieder machen muss (print-Zeilen neu schreiben) dann ist das für mich ein Rückschritt. Ein Gefühl von, ich komme nie weiter, alles Zeitvergeudung.
Achja, warum guckst du dir nicht Guidos Python 3.0-Talk auf Google Video an? Er erklärt da eine ganze Menge Sachen dazu.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Bei meinem Englisch müsste ich im Vorfeld verdammt viel von der Materie verstehen, um zumindest den Großteil der Wörter und/oder Satz-Stellung richtig zu verstehen.Leonidas hat geschrieben: Die Möglichkeit besteht, aber die vorhergehenden "What's New"-Dokumente waren auch auf Englisch idR leicht zu verstehen. Nur ihre Fülle war ein Problem.
Deutsch wäre von daher viel hilfreicher für mich.
Wollte eigentlich gezielt wissen, welche Wörter man vorerst besser meidet. Wie print z.B..Leonidas hat geschrieben:Ja, man sollte beachten, dass man nicht versuchen sollte Code sowohl für 3.0 als auch 2.x zu schreiben.Erwin hat geschrieben:Gibt es, wenn man mit 2.5 weiter macht, vieles, was man beachten sollte, wenn man den gleichen Code dann für 3.0 verwenden will?
Allerdings jetzt wo ich von dem 2to3 weiß, scheint mir es einfacher zu sein, den 2to3 dann drüber laufen zu lassen.
Womit sich die Frage erledigt/beantwortet haben sollte.
Danke.
Was für ein Tool hast Du hergenommen?Leonidas hat geschrieben:Natürlich. Ich habe mir mein Python auf Gentoo Linux selbst kompiliert, das ist alles überhaupt kein Problem.
Ich benutzte als Linux-Distri Ubuntu (Gnome-Destop).
Würde da vermutlich das gleiche Tool laufen?
Mal sehen, ob ich den finde. Danke.Leonidas hat geschrieben:Ja, der Konverter heißt 2to3.
Heißt der nur 2to3? Kein Py davor, oder ähnliches?
Aber eines Tage vermutlich schon?Leonidas hat geschrieben: Du darfst auch gerne noch jahrelang 2.x nutzen, 3.x wird sich sowieso nicht sonderlich schnell durchsetzen.
Ich meine, wenn man noch etwas am Anfang steht, ist es doch wohl besser, gleich mit 3 weiter zu machen, oder?
Anderseits ... wen man die neue Funktionen nicht braucht, dann kann man ja jederzeit mit 2to3 ja alles auf 3 umschreiben lassen?
Ich darf nicht so viel darüber nachgrübeln.
Dürfte in Englisch sein, oder?Leonidas hat geschrieben:Achja, warum guckst du dir nicht Guidos Python 3.0-Talk auf Google Video an? Er erklärt da eine ganze Menge Sachen dazu.
Meine Schwerhörigkeit machte es mir schwer die Muttersprache, also Deutsch, richtig zu lernen. Von Englisch dann ganz schweigen. Und wen das Englisch dann auch noch in Ton ist ... das wird dann nichts. Leider.
Ich mache nie einen Fehler Zweimal.
Schließlich ist die Auswahl ja groß genug.
Schließlich ist die Auswahl ja groß genug.
- paedubucher
- User
- Beiträge: 30
- Registriert: Donnerstag 29. Juni 2006, 18:29
- Wohnort: Schweiz
- Kontaktdaten:
Vorweg: Ich habe mir diesen ganzen Thread nicht auf den allerletzten Satz durchgelesen, aber das meiste habe ich mitbekommen.
Zunächst möchte ich mal auf ein Vortrag von Guido van Rossum verweisen, der die Änderungen von Python 3000 behandelt. Dieser Vortrag ist schon relativ alt, fasst aber einige Punkte gut zusammen. Hier der Link: Youtube-Video. (EDIT: der Vorposter hat schon darauf verwiesen, hier einfach noch der Link zum anklicken )
Betreffend des print-Statements (bzw. der print-Funktion) wird begründet, dass eine Migration zu einem Logging-Framework mit print als Funktion einfacher ist. Der Grund ist einfach, wenn ich print() durch einen Funktions-/Methodenaufruf ersetzen möchte, kann ich einfach "print" in "foo" oder "foo.bar" umbenennen. Ist print jedoch ein Statement, muss ich noch Klammern rund herum beifügen. Dies ist etwas aufwändiger und fehleranfälliger (ich sehe nicht wirklich grosse Probleme, weiss jedoch auch nicht, wie kompliziert man ein print-Statement maximal formulieren kann). Aber ich bin auch ein Befürworter der print-Funktion!
Zunächst möchte ich mal auf ein Vortrag von Guido van Rossum verweisen, der die Änderungen von Python 3000 behandelt. Dieser Vortrag ist schon relativ alt, fasst aber einige Punkte gut zusammen. Hier der Link: Youtube-Video. (EDIT: der Vorposter hat schon darauf verwiesen, hier einfach noch der Link zum anklicken )
Betreffend des print-Statements (bzw. der print-Funktion) wird begründet, dass eine Migration zu einem Logging-Framework mit print als Funktion einfacher ist. Der Grund ist einfach, wenn ich print() durch einen Funktions-/Methodenaufruf ersetzen möchte, kann ich einfach "print" in "foo" oder "foo.bar" umbenennen. Ist print jedoch ein Statement, muss ich noch Klammern rund herum beifügen. Dies ist etwas aufwändiger und fehleranfälliger (ich sehe nicht wirklich grosse Probleme, weiss jedoch auch nicht, wie kompliziert man ein print-Statement maximal formulieren kann). Aber ich bin auch ein Befürworter der print-Funktion!