Frage zu Sets in Python (+ XML-Prog)
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Du nimmst einfach
oder verwendest reguläre Ausdrücke:
Code: Alles auswählen
string.ascii_letters + '_'
Code: Alles auswählen
re.compile("[a-zA-Z_]+")
Oh Mein Gott! Sag mal wenn Du nicht in Python programmieren willst, dann bleib doch einfach bei Pascal. Das ist so ziemlich der gruseligste "Python"-Quelltext, den ich bisher gesehen habe.
Arbeite mal das Python-Tutorial durch. Es gibt zum Beispiel so tolle Sachen wie eine `split()`-Methode bei Zeichenketten. Und Ausnahmen um diese ganzen hässlichen `True`/`False`-Rückgabewerte loszuwerden. Die im Übrigen in vielen Fällen zu kompliziert geschrieben sind. Wenn das Ergebnis eines Ausdrucks schon ein Wahrheitswert ist, dann braucht man nicht auch noch ein ``if``/``else`` drumherum basteln das dann `True` oder `False` zurückgeben lässt.
Und das `myxml.data` ein *Klassenattribut* sein sollte, glaube ich auch nicht. Der Klasse fehlt eine `__init__()`-Methode.
Eine einfache API für XML ist `ElementTree`. Und das Modul *funktioniert* auch. Bei Deinem Quelltext habe ich da starke Bedenken. Was passiert zum Beispiel mit Zeichen ausserhalb des ASCII-Wertebereichs? Oder beim Lesen mit Kommentaren, CDATA-Bereichen oder Entities? Und sehe ich das richtig das "falsche" Teile bei Pfaden einfach unter den Tisch fallen und "foo/$gnarf/bar" das gleiche wie "foo/bar" ist!?
Arbeite mal das Python-Tutorial durch. Es gibt zum Beispiel so tolle Sachen wie eine `split()`-Methode bei Zeichenketten. Und Ausnahmen um diese ganzen hässlichen `True`/`False`-Rückgabewerte loszuwerden. Die im Übrigen in vielen Fällen zu kompliziert geschrieben sind. Wenn das Ergebnis eines Ausdrucks schon ein Wahrheitswert ist, dann braucht man nicht auch noch ein ``if``/``else`` drumherum basteln das dann `True` oder `False` zurückgeben lässt.
Und das `myxml.data` ein *Klassenattribut* sein sollte, glaube ich auch nicht. Der Klasse fehlt eine `__init__()`-Methode.
Eine einfache API für XML ist `ElementTree`. Und das Modul *funktioniert* auch. Bei Deinem Quelltext habe ich da starke Bedenken. Was passiert zum Beispiel mit Zeichen ausserhalb des ASCII-Wertebereichs? Oder beim Lesen mit Kommentaren, CDATA-Bereichen oder Entities? Und sehe ich das richtig das "falsche" Teile bei Pfaden einfach unter den Tisch fallen und "foo/$gnarf/bar" das gleiche wie "foo/bar" ist!?
Lösche bitte meinen Account(du bist ja Moderator), entschuldige das ich euch belästigt habe.Oh Mein Gott! Sag mal wenn Du nicht in Python programmieren willst, dann bleib doch einfach bei Pascal. Das ist so ziemlich der gruseligste "Python"-Quelltext, den ich bisher gesehen habe.
Wie gesagt kann man Daten in xml speichern, als auch diese Dateien wieder auslesen - das was Otto-Normal-User nutzt kann man hiermit (hoffentlich) machen, deshalb der Hinweis auf eine simple API. Es war nicht die Rede davon das alles was in xml möglich ist auch genutzt wird.Oder beim Lesen mit Kommentaren, CDATA-Bereichen oder Entities? Und sehe ich das richtig das "falsche" Teile bei Pfaden einfach unter den Tisch fallen und "foo/$gnarf/bar" das gleiche wie "foo/bar" ist!?
Hier mal ein Beispiel wie simpel man einen String in xml speichern kann:
xml = myxml()
xml.Add_Key('/Daten/User')
xml.Write('/Daten/User', 'BlackJack', 'Moderator der mich loescht')
xml.SaveToFile('auf_wiedersehen.xml')
Ich bin nur Moderator, nicht Admin.
Es mag eine simple API sein, aber es ist kein XML. Es kann nur eine Untermenge von XML lesen und es ist wohl recht einfach kaputtes XML zu erzeugen, was dann selbst Deine Klasse nicht wieder einlesen kann. Und das wo es doch eine einfache echte XML-API gibt. Und falls Dir die nicht einfach genug ist, kannst Du Deine API da draufsetzen.
Es mag eine simple API sein, aber es ist kein XML. Es kann nur eine Untermenge von XML lesen und es ist wohl recht einfach kaputtes XML zu erzeugen, was dann selbst Deine Klasse nicht wieder einlesen kann. Und das wo es doch eine einfache echte XML-API gibt. Und falls Dir die nicht einfach genug ist, kannst Du Deine API da draufsetzen.
Ich kam mit BlackJacks Art am Anfang auch nicht klar, aber du musst doch nicht abhauen... Er meint's nur gut. Ich hab den Quelltext gesehen und er war wirklich sehr verworren. Absolut nicht pythonisch und das fand BlackJack halt nicht gut....
Ich muss BlackJack in Schutz nehmen, er hat nichts beleidigendes oder so gesagt.
Ich muss BlackJack in Schutz nehmen, er hat nichts beleidigendes oder so gesagt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
salznase, wenn du deinen Account wirklich gelöscht haben willst und mit ein wenig Kritik nicht umgehen kannst, dann schreib mir eine PN. Aber gleich aufgeben ist sicherlich kein Weg um zu lernen, auch wenn Gegenwind kommt.BlackJack hat geschrieben:Ich bin nur Moderator, nicht Admin.
Schade, schade, dass ich den Quelltext nicht gesehen habe, da hätte ich sicher auch Spaß damit gehabt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice