Inwieweit werden zukünftige Änderungen an Python kompatibel mit
momentan gültigen Python-Versionen sein ?
Ist es richtig, daß in "Python 3000" (Python 3.0) Sprachelemente wie
print und lambda verschwinden werden und sollte man daher schon jetzt
print und lambda vermeiden, um nicht Programme zu schreiben, die in
einigen Jahren ungültig sind ??
Änderungen an Sprachdef.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Das hatten wird schon mal besprochen: http://www.python-forum.de/viewtopic.php?t=3455
Danke für den Hinweis.
Also gut, Sprachänderungen scheinen unvermeidlich zu kommen, dann
bleibt noch meine Frage nach einer Empfehlung, ob man sich jetzt schon auf die wahrscheinlichen Änderungen z.B. in Python 3000 einstellen sollte und print oder lambda vermeiden sollte (sind die Änderungen, die bis jetzt im
Python 3000 - Paper skizziert sind, schon festgelegt oder ist da noch
Spielraum für weitere Änderungen oder Rücknahmen von skizzierten
Änderungen) ?
Also gut, Sprachänderungen scheinen unvermeidlich zu kommen, dann
bleibt noch meine Frage nach einer Empfehlung, ob man sich jetzt schon auf die wahrscheinlichen Änderungen z.B. in Python 3000 einstellen sollte und print oder lambda vermeiden sollte (sind die Änderungen, die bis jetzt im
Python 3000 - Paper skizziert sind, schon festgelegt oder ist da noch
Spielraum für weitere Änderungen oder Rücknahmen von skizzierten
Änderungen) ?
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ich glaube nicht, das die änderungen festgelegt sind... Und ich kann mir auch nur schwer vorstellen, das man print abschaffen wird... Vielleicht wird man es auch einfach nur anders Implementieren?!?!
lambda und yield usw. benutze ich eigentlich sowieso nie... Weil ich gar nicht weiß, wie die genau funktionieren Somit hab ich das jetzt schon nicht vermisst
lambda und yield usw. benutze ich eigentlich sowieso nie... Weil ich gar nicht weiß, wie die genau funktionieren Somit hab ich das jetzt schon nicht vermisst
Ich würde gern 2 Zahlentupel komponentenweise addieren, also als Vektoren behandeln. Gibt es irgeneine möglichkeit neue Operationen für sowas zu definieren bzw. vorhandene Operationen zu überladen um sie dann z.B. in der Python-Shell andwenden zu können?
danke
danke
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Solchen Möglichkeiten, vorhandene Typen zu ersetzen gibt es nicht, aber es ist kein Problem von den eingebauten Typen zu erben uns seine eigenen Typen zu definieren, seit Python 2.2.1. So kannst du class Vector(tuple) definieren und sie so erweitern.
Aber Python 3.0 bringt gar nichts so schlimmes mit sich, print wird geändert und lambda war sowieso nicht besonders mächtig. LCs haben lambdas größtenteils ersetzt.
Aber Python 3.0 bringt gar nichts so schlimmes mit sich, print wird geändert und lambda war sowieso nicht besonders mächtig. LCs haben lambdas größtenteils ersetzt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Aber wo ist mein yield hin?Leonidas hat geschrieben:Solchen Möglichkeiten, vorhandene Typen zu ersetzen gibt es nicht, aber es ist kein Problem von den eingebauten Typen zu erben uns seine eigenen Typen zu definieren, seit Python 2.2.1. So kannst du class Vector(tuple) definieren und sie so erweitern.
Aber Python 3.0 bringt gar nichts so schlimmes mit sich, print wird geändert und lambda war sowieso nicht besonders mächtig. LCs haben lambdas größtenteils ersetzt.
TUFKAB – the user formerly known as blackbird
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das bleibt doch da, ohne yield gibts keine Generatoren und die werden ganz sicher nicht abgeschafft.blackbird hat geschrieben:Aber wo ist mein yield hin?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Hab mir jetzt von Jens fehlleiten lassen. Aber lambda finde ich eigentlich schon sehr praktisch, auch wenn ich es kaum verwende.Leonidas hat geschrieben:Das bleibt doch da, ohne yield gibts keine Generatoren und die werden ganz sicher nicht abgeschafft.blackbird hat geschrieben:Aber wo ist mein yield hin?
TUFKAB – the user formerly known as blackbird
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich brauche lambda nicht, weil mir lambda nur anonyme Funktionen erlaubt, die ich, wenn ich will auch an Namen binden kann. Sowas brauche ich nie, vor allem weil diese Funktionen im Vergleich zu normalen Funktionen sehr verkrüppelt sind. map() und filter() sollen auch weg, bei denen man vorher eine Lambda-Expression als ersten Parameter angegeben hat. Aber man kann dort auch problemlos Callables angeben und sie funktionieren weiterhin.blackbird hat geschrieben:Aber lambda finde ich eigentlich schon sehr praktisch, auch wenn ich es kaum verwende.
Also wenn schon lambda, dann aber bitte richtig, mit allen Möglichkeiten. Ich habe nichts gegen Lambdas, die funktionalen Elemente von Python finde ich sehr nett (auch wenn ich sie nicht immer nutze), aber in anderen Sprachen ist lambda wirklich mächtiger.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
`map()` und `filter()` sollen als *eingebaute* Funktionen verschwinden -- die werden sicher als Funktionen in einem Modul wieder auftauchen. Ausserdem gibt's noch `imap()` und `ifilter()` im `itertools` Modul wo man anonyme Funktionen genauso gebrauchen kann, wie bei `map()` und `filter()`.Leonidas hat geschrieben:map() und filter() sollen auch weg, bei denen man vorher eine Lambda-Expression als ersten Parameter angegeben hat. Aber man kann dort auch problemlos Callables angeben und sie funktionieren weiterhin.