nach Iterierbarkeit fragen

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

Ich glaube nicht, das der BDFL das Semikolon so gut findet. Zumindest Quelltext, der in die Standardbibliothek kommen soll, sollte sich an PEP8 halten und das empfiehlt auch einzeilige "Rümpfe" eingerückt in eine neue Zeile zu schreiben.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Der BDFL mag BDFL heißen aber trotzdem ist deswegen muss man seine Meinung nicht gut heißen noch akzeptieren.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Oh, das gutheißen von Entscheidungen hatten wir heute im IRC schon.

IMHO könnte man das Semikolon komplett loswerden, da gibt es eigentlich keine Fälle wo das Semikolon die Lesbarkeit verbessert (und kommt mit nicht mit ``cgitb``, das finde ich auch nicht gut).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

Eine Diskussion um das Semikolon ... :roll:
BlackJack

:-D

@Leonidas: Bei Einzeilern auf der Kommandozeile ist es praktisch. Ansonsten habe ich auch noch keine Verwendung dafür gefunden.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

lunar hat geschrieben:Eine Diskussion um das Semikolon ... :roll:
Wir brauchen dringend ein [bikeshed=color] BBCode-Tag, das Text in der entsprechenden Farbe (und in Comic Sans!!!1) hervorhebt.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
Goswin
User
Beiträge: 363
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

DasIch hat geschrieben:Der BDFL mag BDFL heißen aber trotzdem muss man seine Meinung nicht gutheißen noch akzeptieren.
Natürlich hast du recht mit dem Gutheißen (zum Akzeptieren, das heißt zum Lesen, sind wir als Python-Programmierer ja gezwungen). Ich möchte aus meiner obigen Aussage nur folgern, dass die Güte der Semikolons umstritten ist, und kein Mantra daraus gemacht werden sollte. Der BDFL hat ja auch anderes abgesegnet, was mir echt Magenschmerzen bereitet.


Imho finde ich freilich, dass wir unschönen Code anderswo beanstanden sollten, zum Beispiel beim sehr häufigen

Code: Alles auswählen

a, b = c, d   #gemeint ist hier (a,b) = (c,d)
welches jeder naive Außenstehende als

Code: Alles auswählen

a; b = c; d
deuten würde (wer nicht so denkt, ist einfach nicht naiv genug :wink: )
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

BlackJack hat geschrieben:@helduel: Aber auch bei 2.6 erkennt man so nicht alle "iterables":
Strenggenommen schon, wenn es einem aber um for geht, dann muss man halt collections.Sequence nehmen. Wenn einem da jetzt noch ein Spezialfall durch die Lappen geht(ich befürchte aber dein Beispiel tut es) ist der aber wirklich undokumentiert oder die ABCs kaputt.
Zuletzt geändert von Darii am Dienstag 14. April 2009, 14:08, insgesamt 2-mal geändert.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Goswin hat geschrieben:
DasIch hat geschrieben:Der BDFL mag BDFL heißen aber trotzdem muss man seine Meinung nicht gutheißen noch akzeptieren.
Natürlich hast du recht mit dem Gutheißen (zum Akzeptieren, das heißt zum Lesen, sind wir als Python-Programmierer ja gezwungen). Ich möchte aus meiner obigen Aussage nur folgern, dass die Güte der Semikolons umstritten ist, und kein Mantra daraus gemacht werden sollte. Der BDFL hat ja auch anderes abgesegnet, was mir echt Magenschmerzen bereitet.


Imho finde ich freilich, dass wir unschönen Code anderswo beanstanden sollten, zum Beispiel beim sehr häufigen

Code: Alles auswählen

a, b = c, d   #gemeint ist hier (a,b) = (c,d)
welches jeder naive Außenstehende als

Code: Alles auswählen

a; b = c; d
deuten würde (wer nicht so denkt, ist einfach nicht naiv genug :wink: )
Das ist aber ein tolles Feature.
Vor allem für

Code: Alles auswählen

a,b = b,a
Tuple-Unpacking halt. Steht alles im Tutorial ;)
Benutzeravatar
Goswin
User
Beiträge: 363
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

audax hat geschrieben:Das ist aber ein tolles Feature. Vor allem für

Code: Alles auswählen

a,b = b,a
Ich finde das Feature ja auch toll. Aber die Klammern rund um die Tupel sollten imho Pflicht sein; sie fortzulassen halte ich für unschön. Es geht doch auch so:

Code: Alles auswählen

(a,b) = (b,a)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ich finde nicht, dass zusätzliche Klammern hier irgend einen Mehrwert bringen. Das Argument, das Außenstehende dann Python-Code besser lesen könnten zieht nicht so richtig. Wo fangen "Außenstehende" an? Programmierer aus anderen Sprachen? Nicht-Programmierer? Kinder? Hunde ^^?
Das Leben ist wie ein Tennisball.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Die runden Klammern haben mit Tupeln nichts zu tun. Mal abgesehen davon dass "Tuple-Unpacking" sowieso ein irreführender Begriff ist, das geht mit jedem Objekt über dass man iterieren kann.
Benutzeravatar
Goswin
User
Beiträge: 363
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

EyDu hat geschrieben:Wo fangen "Außenstehende" an? Programmierer aus anderen Sprachen? Nicht-Programmierer? Kinder? Hunde?
Ich meinte Python-Außenstehende, also Programmierer aus anderen Sprachen (so wie ich), ausgenommen Holländer :wink:.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

DasIch hat geschrieben:Die runden Klammern haben mit Tupeln nichts zu tun. Mal abgesehen davon dass "Tuple-Unpacking" sowieso ein irreführender Begriff ist, das geht mit jedem Objekt über dass man iterieren kann.

Code: Alles auswählen

>>> type(())
<type 'tuple'>
;-)

@Goswin: jeder der das Tutorial halbwegs durchgelesen hat, dem wird schon auffallen, dass man so Tupel erzeugt. Das traue ich einem Programmierer zu. Betrachte es mal andersrum: Python gibt dir die Freiheit um Tupel Klammern setzen zu können. Und zwar so viele Ebenen wie du möchtest :D

Und überhaupt: es sind nur Klammern ^^
Das Leben ist wie ein Tennisball.
lunar

Goswin hat geschrieben:Imho finde ich freilich, dass wir unschönen Code anderswo beanstanden sollten, zum Beispiel beim sehr häufigen

Code: Alles auswählen

a, b = c, d   #gemeint ist hier (a,b) = (c,d)
welches jeder naive Außenstehende als

Code: Alles auswählen

a; b = c; d
deuten würde
Meinst du nicht, dass diese Behauptung ein bisschen sehr weit hergeholt ist?

Ob das nun unschön ist, liegt im Auge des Betrachters ... und die Betrachtungsweise eines "Außenstehenden" dürfte für Python-Programmierer kaum ein sinnvoller Maßstab sein. Schließlich nutzen Python-Programmierer gemeinhin auch einfache Funktionen, obwohl ein "naiver, außenstehender" Java-Programmierer damit auch nichts anzufangen weiß.
Antworten