Änderungen an Sprachdef.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
syntact

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 ??
Benutzeravatar
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

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
syntactic

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) ?
Benutzeravatar
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 :oops: Somit hab ich das jetzt schon nicht vermisst ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Gast

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
Leonidas
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

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.
Aber wo ist mein yield hin? :cry:
TUFKAB – the user formerly known as blackbird
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

blackbird hat geschrieben:Aber wo ist mein yield hin? :cry:
Das bleibt doch da, ohne yield gibts keine Generatoren und die werden ganz sicher nicht abgeschafft.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Leonidas hat geschrieben:
blackbird hat geschrieben:Aber wo ist mein yield hin? :cry:
Das bleibt doch da, ohne yield gibts keine Generatoren und die werden ganz sicher nicht abgeschafft.
Hab mir jetzt von Jens fehlleiten lassen. Aber lambda finde ich eigentlich schon sehr praktisch, auch wenn ich es kaum verwende.
TUFKAB – the user formerly known as blackbird
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

blackbird hat geschrieben:Aber lambda finde ich eigentlich schon sehr praktisch, auch wenn ich es kaum verwende.
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.

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
BlackJack

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.
`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()`.
Antworten