1. Foren
  2. Kommentare
  3. OpenSource-Forum
  4. Alle Kommentare zum Artikel
  5. › NZXT: Lüfter auch unter Linux…

Python Tipps

Neue Foren im Freiraum! Raumfahrt und freie Software haben jetzt einen Platz, die Games tummeln sich jetzt alle in einem Forum.
  1. Thema

Neues Thema


  1. Python Tipps

    Autor: darkshines 21.03.17 - 12:38

    Du scheinst einen guten Start mit Python hingelegt zu haben. Leider befolgst du ein paar Anti-Pattern die gänzlich untypisch, schwer zu lesen oder ineffizient sind. Ich hätte hier ein paar Verbesserungsvorschläge, als Lernhilfe für später :)

    cleanupconfig:
    Die Stringmanipulation direkt über Indizes wird meistens vermieden, besonders weil man das mächtige re Modul für Regular Expressions in Python an Bord hat. Die Funktion könntest du umschreiben zu:

    import re
    return re.sub(r'#.*?\r?\n', '', str)

    Damit werden einfach alle Zeichenketten durch den leeren String ersetzt, welche mit einem Pound Symbol anfangen und mit einem Zeilenumbruch aufhören.

    parseconfig:
    Dictionaries haben eine Funktion iteritems(), die genau das tut, was du dort brauchts. Also:
    for idx, config in cfg.iteritems():
    self.add_device(idx, config)

    getall:
    Eine riesige Alarmglocke muss jedesmal in deinem Kopf losschallen, wenn du das Pattern range(len(...)) irgendwo siehst. Wenn es absolut unvermeidbar ist, auf den index zuzugreifen, benutze enumerate(). Obwohl das an der Stelle, ehrlich gesagt, mit der JSON Konvertierung in self.getdevice() wohl zu aufwändig wäre, das anders zu schreiben :)

    Wenn du mehr zum "Pythonic way" erfahren möchtest, schau dir die Vorträge von Raymond Hettinger an. Er zeigt auf unheimlich unterhaltsame und sympatische Art und Weise, wie man es meistens besser machen kann, in Python.

  2. Re: Python Tipps

    Autor: xvzf 21.03.17 - 12:46

    Danke für die Rückmeldung!

    C/C++, Java (Kriegsfuß) bin ich fit drin - Python bin ich immer noch am lernen à la "Learning by doing"!
    Das einzige wo ich Python bisher verwendet habe war in einer Vorlesung über Netzwerksicherheit!

    Cheers,
    Matthias

  3. Re: Python Tipps

    Autor: glasen77 21.03.17 - 15:48

    darkshines schrieb:
    --------------------------------------------------------------------------------
    > cleanupconfig:
    > Die Stringmanipulation direkt über Indizes wird meistens vermieden,
    > besonders weil man das mächtige re Modul für Regular Expressions in Python
    > an Bord hat. Die Funktion könntest du umschreiben zu:
    >
    > import re
    > return re.sub(r'#.*?\r?\n', '', str)

    Die Frage ist nur, ob es sich jedes Mal lohnt RegExes zu benutzen, da diese nicht besonders performant sind. Wenn der String immer identisch aufgebaut ist, spricht nichts gegen die Verwendung von Indizes. Das mag bei dem Programm keine Rolle spielen, aber wenn man mal eine Datei mit zig-Millionen Zeilen einlesen muss, addiert sich das ganz schön auf.

    > parseconfig:
    > Dictionaries haben eine Funktion iteritems(), die genau das tut, was du
    > dort brauchts. Also:
    > for idx, config in cfg.iteritems():
    > self.add_device(idx, config)

    ".iteritems()" ist Python2, die Syntax für Python3 lautet ".items()".

  4. Re: Python Tipps

    Autor: darkshines 21.03.17 - 15:50

    Ha! Ja, Macht der Gewohnheit :) Hier auf der Arbeit sind wir noch nicht auf Python 3 umgestiegen.

  1. Thema

Neues Thema


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Informatiker / Fachinformatiker / MTLA als Anwendungsbetreuer (m/w/d) für medizinische Applikationen ... (m/w/d)
    Limbach Gruppe SE, Heidelberg
  2. Software Consultant/IT-Projektmanager (m/w/d) Versandlogistik
    ecovium GmbH, Neustadt am Rübenberge
  3. Projektmanagerin / Projektmanager Ticketing Systeme
    Scheidt & Bachmann Fare Collection Systems GmbH, Mönchengladbach
  4. Scrum Master (m/w/d) im Hardware and Embedded Middleware Competence Center für Aktivitäten ... (m/w/d)
    Thales Deutschland GmbH, Ditzingen

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. 499,99€


Haben wir etwas übersehen?

E-Mail an news@golem.de


Radeon RX 6650/6750 XT im Test: Von (fast) allem ein bisschen mehr
Radeon RX 6650/6750 XT im Test
Von (fast) allem ein bisschen mehr

Energie, Taktraten, Preis: Beim Radeon-RX-Refresh legt AMD die Messlatte durchweg höher, was für interessante Konstellationen sorgt.
Ein Test von Marc Sauter

  1. RDNA2-Grafikkarten Schnellere Radeon RX 6000 für Mai erwartet
  2. Temporales Upscaling Das kann AMDs FidelityFX Super Resolution 2.0
  3. Navi-Grafikkarten Radeon Super Resolution heute, FSR 2.0 bald

Deklaratives Linux: Keine Angst vor Nix
Deklaratives Linux
Keine Angst vor Nix

NixOS ist genial zum Deployen von Software, doch der Einstieg ist hart. Über eine rasant wachsende Linux-Distribution und ihre Community, die viel erreicht.
Ein Erfahrungsbericht von Lennart Mühlenmeier

  1. Proton Epics Anti-Cheat-Tool läuft auf Linux
  2. Datenleck Sicherheitslücke im Shop von Tuxedo entdeckt und geschlossen
  3. Linux Treiberentwicklung fast ohne Hardware

Bundes-Klimaschutzgesetz: Die Bundeswehr wird grüner
Bundes-Klimaschutzgesetz
Die Bundeswehr wird grüner

Die Bundesverwaltung soll bis 2030 klimaneutral sein. Dazu gehört auch die Bundeswehr, die auf erneuerbare Energien und Elektrofahrzeuge umsteigen soll.
Ein Bericht von Werner Pluta

  1. 600 Millionen Euro Bundeswehr lässt Funkgeräte von 1982 nachbauen