BlackVivi hat geschrieben:Öhm... Findest du nicht, dass du'n bissel übertreibst? Ich find's so mit dem else eigentlich sogar übersichtlicher oO'
Ne finde ich nicht. Schaum mal: Der `if len(elem):`-Block ist total sinnvoll, da darin, plump gesagt, viel passiert, wohingegen beim `else:`-Block außer einer if abfrage nichts passiert. Eine `else` verzeweigung in der *nur* ein `if` ist, kann man gleich als `else if` verbinden. Es ist IMO sauberer.
Ist so ähnlich wie das ein ``else: pass`` total überflüssig ist. Ist so ähnlich wie das man `if eggs` und nicht `if eggs is True` oder gar `if eggs == True` schreibt.
Das hat was mit der Einstellung zu tun...Bleibt aber jedem selbst überlassen (Und darauf liegt die Betonung)...ich dachte nur, da hier ein par Klugscheißer (So genante Regulars) rumlaufen die jeden Furz kommentieren, probiere ich mal und schau wie lang es dauert bis...
Wie dem auch sei...heißt aber nicht das dass was ich oben geschrieben habe falsch wäre! Ist absolut richtig und wird auch so gelehrt.
Oder kriegt man neuerdings im IT-Unterricht keine Abzüge für sowas?
BlackVivi hat geschrieben:
Is jetzt nicht so, als hätte er den PEP8 superpervers gebrochen und man ihm'ne Email schicken muss oO..
Das hat nichts mit PEP8 zu tun, ausserdem kenst du meine Einstellung bezüglich PEP8 und der Allgemeinen Dogmatik hier
Du kannst das obere auch so ausfassen, als etwas das zwar richtig ist aber gleichzeitig die Regulars ein wenig veräppelt
U See?
BlackVivi hat geschrieben:
Hab schon recht viele Dokumentationen von Bibliotheken gelesen, die sogar * importe benutzt haben.
Solche Libs gleich kicken. Auch Libs wo sich keine mühe für doku gegeben wird. Wenns schon bei sowas scheitert, wie viel vertrauen soll man dann in die Qualität des restlichen codes haben!?
BlackVivi hat geschrieben:
Außerdem find' ich BeautifulSoup überhapt nicht trashig o_o]
Es ist Geschmacksachen und ich habe auch "IMO" geschrieben. `BeautifulSoup` ist dafür zu gebrauchen für das es auch ursprünglich gedacht war: Parsen und reparieren von Kaputten HTML Seiten (Nicht shclißende Tags, ...). Daher auch der Name Beautiful Soup, halt wunderbare Seife, das eine Anspielung an die soup parsern der Browser sein soll die damit Kapute Seiten im quirks-mode parsen.
Alles wo es dann darum geht wirklich viele und dicke Seiten zu *verarbeiten* ist BeautifulSoup total speicher fressend (hat Probleme mit Zirkulären Referenzen die es nicht durchbrechen kann, etc...Da kannte jamand das `weakref` modul nicht), *sehr langsam*, ...
Ehrlich, wenn ich weiß das $SITE eine feste sich nicht ändernd (zumindest für die nächsten 3 Jahre) Struktur aufweißt, dann benutze ich regexes. Und das meine ich ehrlich. Erstens wird IMO der Code übersichtlicher (Ja, obwohl regexes vorhanden sind
, das parsen geht viel schneller, etc. Für komplexere Sachen, verwende ich halt die Standard XML-Parser...
Und wenn es schnell gehen soll und auf ein wegwerfscript hinausläuft dan BeautifulSoup oder lieber gleich Ruby.
BlackVivi hat geschrieben:
Mit ETree hab ich schon recht viel gearbeitet und gemerkt, dass's manchmal ein bisschen... tückisch wird. Unsauber aussieht bei großen Strukturen. Aber kein Weltuntergang...
Die API von ElementTree ist OK und bis auf das von dir angesprochene auch nicht das Problem (Arbeite mal mit DOM, da kriegst du das schreien
). Was mich stört ist, das es sehr beschränkt ist. Keinerlei Validierungsmöglichkeiten und so weiter (Siehe oberen Post von mir).
Ehrlich, wenn ich eine Software entwickle die ein XML-Dateiformat verwendet das ich oder andere spezifizieren müssen, dann erwarte ich das mindestens die Möglichkeit gegeben wird das ganze mir RelaxNG zu Formulieren, dass dann als Validierung gilt. DTD kommt für mich überhaupt nicht in frage, und selbst das bietet ElementTree nicht. -- Alles andere ist für mich nur gehacke und nicht Professionell (Ja, selbst die Validierung mit Python zu schreiben!! Wozu gibt es eben DTD, RelaxNG...)
`lxml` ist halt für mich ein Komplettpaket mit allem wichtigen was ich für XML brauch plus der Möglichkeit trotzdem die Vorzüge der ElementTree API zu nutzen, da komplett unterstütz mit erweiterungen. Außerdem ist `lxml` komplett in C (Python C-API, also ne Extension) und Python geschrieben und ein Wrapper um
`libxml2` and `libxslt` das nicht ganz unbekannt und gut ist. Dadurch ist es extrem schnell und schlägt ElementTree und auch (cElementTree). Versteh mich nicht falsch, effbot hat mit ElementTree wie auch mit SRE, ... Super dinger geschrieben, aber IMO ist es mittlerweile obsolete und sollte durch `lxml` ersetzt werden, da es neben der ElementTree-API und andere, auch wichtige Sachen beinhaltet die für "Professionelles" Arbeiten mit XML IMO notwendig sind.
BlackVivi hat geschrieben:
Aber BeautifulSoup? Wie auch BlackJack würd ich es sogar begrüßen, wenn's in'r Stdlib wär!
Da spricht auch nichts dagegen, da es auf dem Gebiet für das es gedacht ist auch IMO für Python nichts besseres gibt (Falls einer einen besseren soup parser kennt, dann bitte Link posten). Ich benutzte ja BeautifulSoup wie angesprochen selber.