Ä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

Freitag 26. August 2005, 06:27

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
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 26. August 2005, 07:23

Das hatten wird schon mal besprochen: http://www.python-forum.de/viewtopic.php?t=3455

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
syntactic

Freitag 26. August 2005, 10:53

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
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 26. August 2005, 10:59

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 ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Gast

Freitag 23. September 2005, 17:16

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
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 23. September 2005, 19:29

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 Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Freitag 23. September 2005, 20:47

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
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 23. September 2005, 23:32

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 Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Sonntag 25. September 2005, 16:25

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
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 26. September 2005, 12:59

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 Modvoice
BlackJack

Donnerstag 29. September 2005, 21:27

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