Jede Menge Python Snippets

Gute Links und Tutorials könnt ihr hier posten.
Antworten
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Im Ubuntu Wiki bin ich über eine Seite mit jeder Menge Snippets gestolpert

https://wiki.ubuntu.com/Quickly/Snippets

Wer ähnliche Seiten kennt kann sie vielleicht anhängen
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Schon dass erste Beispiel ist, schlecht was auch nicht dadurch besser wird dass, ohne Erklärung wieso, ein "not safe" da steht.

Ein kurzer Blick zeigt dass alle anderen nicht-trivialen Snippets nicht viel besser sind...
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Naja, es ist ein Wiki. Melde dich an und korrigiere es.

Ich nehme an, da hat einer beim Programmieren einfach ein paar Ideen niedergeschrieben. Finde ich nicht grundsätzlich schlecht.
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

burli hat geschrieben:Naja, es ist ein Wiki. Melde dich an und korrigiere es.
Naja, man hat ja nicht immer Lust, irgend wo etwas zu verbessern, besonders dann, wenn man sich dazu noch anmelden muss.
Zudem müßte ich mich - wiki hin oder her - zunächst nach den Modalitäten erkundigen, wie dort bei Änderungen vorgegangen wird.

Mir fiel noch (bei den trivialen) Beispielen noch folgendes auf:

Code: Alles auswählen

my_list = [1, 2, 3, 4, 5]
if 1 in my_list:
    # "in" liefert doch schon einen Boolschen Wert...
    has_one = True
# besser ist doch:
my_list = [1, 2, 3, 4, 5]
has_one = 1 in my_list
Ok, vermutlich sollte nur angedeutet werden, wie man den Test fahren kann; dann hätte ich in den Rumpf von if aber nur ein "pass" reingeschrieben.

"with" zum Öffnen von Dateien wird auch nicht benutzt; stattdessen file() zum Öffnen statt open(). Nuja, verboten ist es ja nicht.

Das SQLite Snippet kann der Autor gar nicht ausprobiert haben - es würde gar nicht durchlaufen; von einigen Merkwürdigkeiten mal abgesehen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Es sind auch nur Schnipsel. Vielleicht hat/haben der/die Autor(en) einfach nur die Schnipsel gesammelt, um sie für späteren Gebrauch abrufen zu können und haben das netterweise öffentlich gemacht.

Wer weiß, wie alt die Schnipsel sind. with z.B. gibt es noch nicht so lang. Und warum file() statt open() weiß wohl nichtmal mehr der Autor.

Vielleicht kann ja jemand mal eine eigene (bessere) Schnipselliste erstellen. Ich finde sowas gelegentlich ganz praktisch. Gerade so Beispiele wie notify-osd. Wäre nur schön, wenn die etwas besser kommentiert wären und wenn man sie direkt verlinken könnte
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

burli hat geschrieben:Es sind auch nur Schnipsel. Vielleicht hat/haben der/die Autor(en) einfach nur die Schnipsel gesammelt, um sie für späteren Gebrauch abrufen zu können und haben das netterweise öffentlich gemacht.
Ein Anfänger findet es sicherlich sehr "nett", wenn er Code übernimmt, der fehlerhaft ist :twisted:
burli hat geschrieben: Wer weiß, wie alt die Schnipsel sind. with z.B. gibt es noch nicht so lang. Und warum file() statt open() weiß wohl nichtmal mehr der Autor.
Ok, ich hatte da irgendwo mal etwas von Python 2.5 gelesen - alleine der Umstand, dass wir es nicht wissen ist an sich schon ungünstig. Das wäre z.B. etwas, was man bei solch einem Unterfangen am besten dazuschreibt.

An sich ist das ja auch durchaus eine gute Idee - sind halt einige Schwächen in der Umsetzung drin :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Hyperion hat geschrieben:Ein Anfänger findet es sicherlich sehr "nett", wenn er Code übernimmt, der fehlerhaft ist :twisted:
Es fehlt der Hinweis "Verwendung auf eigene Gefahr" ;)

Es stimmt schon, wenn in solchen Sammlungen Fehler sind ist es nicht gerade toll. Ein Hinweis auf die Python Version wäre zumindest angebracht. Bei zusätzlichen Libraries am besten auch die Version der Library.
Hyperion hat geschrieben:Ok, ich hatte da irgendwo mal etwas von Python 2.5 gelesen - alleine der Umstand, dass wir es nicht wissen ist an sich schon ungünstig. Das wäre z.B. etwas, was man bei solch einem Unterfangen am besten dazuschreibt.

An sich ist das ja auch durchaus eine gute Idee - sind halt einige Schwächen in der Umsetzung drin :-)
Wie gesagt, eine Versionsnummer und vielleicht sogar ein Erstell- und Änderungsdatum wäre nicht verkehrt.
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
Antworten