Hallo!
Ich empfehle *with* erst dann, wenn ich es nicht mehr mit
``from __future__ import with_statement`` importieren muss.
lg
Gerold

Hallo EyDu!EyDu hat geschrieben:Dann solltest du dir vielleicht 2.5 installieren
Warum?gerold hat geschrieben:Ich empfehle *with* erst dann, wenn ich es nicht mehr mit
``from __future__ import with_statement`` importieren muss.
Hallo Leonidas!Leonidas hat geschrieben:Warum?gerold hat geschrieben:Ich empfehle *with* erst dann, wenn ich es nicht mehr mit
``from __future__ import with_statement`` importieren muss.
Ok, dann formuliere ich die Frage anders: warum nutzt du es nicht? Es ist in meinen Augen oft nützlich, im Locking-Beispiel sogar mehr noch als im Dateizugriff-Beispiel.gerold hat geschrieben:Da ich es selber noch nicht verwende, fühlt es sich nicht gut an wenn ich es anderen empfehle.
Hallo Leonidas!Leonidas hat geschrieben:Ok, dann formuliere ich die Frage anders: warum nutzt du es nicht? Es ist in meinen Augen oft nützlich, im Locking-Beispiel sogar mehr noch als im Dateizugriff-Beispiel.
Thread getrennt, jetzt passts wieder.gerold hat geschrieben:Schade, dass das hier so eine nichtssagende Stammtischdiskussion wird.
Future-Imports sind keine Beta-Features, sie sind einfach nur da um die Migration auf neuere Python-Version zu vereinfachen (siehe PEP 236 "Intent"). Es ist so weit ich weiß noch nie passiert dass das was per Future-Import eingeführt wurde, sich später ohne Feature-Import anders verhalten hat, als als es aus __future__ importiert wurde. In den nachfolgenden Python-Versionen ist der __future__-Import quasi implizit.gerold hat geschrieben:Ich verwende keine Future-Imports, da sich diese im Gebrauch für mich so anfühlen, als ob ich Beta-Tester wäre. Ich verwende neue Befehle normalerweise erst dann, wenn sie die ersten Kinderkrankheiten überstanden haben. Ein ``from __future__ import with_statement`` verwende ich also aus Prinzip nicht.
Du meinst 2.6. `with` ist erst ab 2.5 verfügbar und muss dort aus Kompatibilitätsgründen explizit importiert werden.EyDu hat geschrieben:Dann solltest du dir vielleicht 2.5 installieren
Naja, es schadet auch nicht, zumindest ein bisschen auf Rückwärtskompatibilität zu achtenY0Gi hat geschrieben:Und als Motivation: "Veränderung ist gut", "Wer nicht mit der Zeit geht, geht mit der Zeit", $random_spruch_aus_der_abteilung
Ja, aber wenn man die heute schreiben würde, würde da wohl brauchbareres rauskommen. find mit seiner seltsamen Syntax, grep mit seinen eher schwachen Regulären Ausdrücken (kein non-greedy, nicht mal in egrep?). Bash ist im Vergleich dazu moderner, aber auch da gibt es bessere Shells, etwa die Z-Shell (ich bin allerdings auch Bash-User, teilweise einfach aus Faulheit). Nicht alles etablierte muss auch stabiler sein.lunar hat geschrieben:Nicht alles, was alt ist, ist schlecht, immerhin verwende ich auch ``find``, ``grep`` und ``bash``,
Also mein grep versteht per ``--perl-regexp`` auch Perl-artige reguläre Ausdrücke und die sollten non-greedy Matching eigentlich können (behaupte ich einfach mal, ohne das probiert zu habenLeonidas hat geschrieben:Ja, aber wenn man die heute schreiben würde, würde da wohl brauchbareres rauskommen. find mit seiner seltsamen Syntax, grep mit seinen eher schwachen Regulären Ausdrücken (kein non-greedy, nicht mal in egrep?).lunar hat geschrieben:Nicht alles, was alt ist, ist schlecht, immerhin verwende ich auch ``find``, ``grep`` und ``bash``,
GNU grep ist aber auch schon ein paar Jahrzehnte alt...BlackJack hat geschrieben:Dann ist das aber eine Vergleichbare Situation zum Thema. POSIX `grep` kennt diesen Schalter nicht, der ist also so ähnlich wie der `__future__`-Import.