Python XML in einer Schleife generieren

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.
JustinJ
User
Beiträge: 14
Registriert: Sonntag 15. Januar 2012, 15:59

also

Code: Alles auswählen

def write_element():
    read_configuration()
    read_history()

das hier ist sinnfrei?


hmmm, wie soll ich sonst die daten aus der XML laden?

PS: Sie sollen ja auch wiederverwendet werden.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Also ein write im Funktionsnamen zu haben, wenn da nur was gelesen wird ist sinnlos.
JustinJ
User
Beiträge: 14
Registriert: Sonntag 15. Januar 2012, 15:59

das kommt später auch wieder weg ist nur zum test...


ich hab jetzt die dictionary eingebaut und yeah es funktioniert :)) Daaaanke!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

JustinJ hat geschrieben:also

Code: Alles auswählen

def write_element():
    read_configuration()
    read_history()
das hier ist sinnfrei?
Beispiel:

Code: Alles auswählen

In [23]: a = 1

In [24]: def foo():
    a = 42
    print(a)
   ....:     

In [25]: foo()
42

In [26]: a
Out[26]: 1
Wenn Du Objekte in einer Funktion an einen Namen bindest, so ist dieser Name nur im jeweiligen Scope gültig. Das `a` ist auf globaler Ebene bei mir gleich 1. Innerhalb von `foo` binde ich die 42 an `a` - aber das ist ein lokales `a`! Nach Auruf der Funktion ist das äußere `a` immer noch an den Wert 1 gebunden.

Bei Dir ist das nicht anders...

Du musst Dich mal mit Funktionen und Rückgabewerten auseinander setzen!
JustinJ hat geschrieben: hmmm, wie soll ich sonst die daten aus der XML laden?
Wie BlackJack schon sagte solltest Du erst einmal die internen Datenstrukturen festlegen! (Also meinetwegen eine Klasse "User" o.ä.). Wenn die alle feststehen und sinnvoll implementiert sind, dann kannst Du Dir Funktionen schreiben, die diese Objekte serialisieren.

Momentan stocherst Du im Nebel und vor allem gehst Du planlos vor!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
JustinJ
User
Beiträge: 14
Registriert: Sonntag 15. Januar 2012, 15:59

danke erstmal für die hilfe. bin erstmal froh, dass es überhaupt funktioniert :)


und am sonsten werde ich morgen nochmal alles durchlesen und ein paar sachen verbessern. Das was noch kommt ist eine Klasse, dass ist logisch
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

JustinJ hat geschrieben: und am sonsten werde ich morgen nochmal alles durchlesen und ein paar sachen verbessern. Das was noch kommt ist eine Klasse, dass ist logisch
Lass es Dir noch einmal gesagt sein: Du gehst es falsch an! Modelliere doch erst Deine Klassen und Datenstrukturen, danach kümmerst Du Dich darum, wie Du das serialisiert bekommst.

Alleine wie Du Deine Funktionen designt hast, lässt eher schlimmes erahnen. Offensichtlich hast Du ja keine Ahnung davon, dass Namen verschiedene Geltungsbereiche haben können. Ohne solche Basics verrennst Du dich in einem wirren Code-Gewirr.

Muss es eigentlich XML sein? Also ist das integraler Bestandteil Deiner Aufgabe?

Hast Du überhaupt schon die Grundfunktionalität des Taschenrechners?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
JustinJ
User
Beiträge: 14
Registriert: Sonntag 15. Januar 2012, 15:59

ja xml muss es sein... ist elementarer bestandteil

die funktionsweise des taschenrechner wird von jemand anderes aus meiner gruppe programmiert. sind 5 leute in einer gruppe. mir wurde der XML-parser zugewiesen...
BlackJack

@JustinJ: Du kannst Deine Aufgabe doch aber erst anfangen, wenn Du weisst, wie die Daten aussehen, die Du serialisieren sollst. Also welche Objekte Du zum abspeichern bekommst, und welche Du beim Einlesen erzeugen sollst. Bis Du diese Information von Deinen Mitstreitern bekommst, könntest Du die Grundlagen von Python und allgemein Programmieren lernen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

JustinJ hat geschrieben:ja xml muss es sein... ist elementarer bestandteil
Ist das "Format" denn festgelegt? Wenn nein, kann man da sicherlich einiges optimieren... BlackJack wies ja auch schon darauf hin.
JustinJ hat geschrieben: die funktionsweise des taschenrechner wird von jemand anderes aus meiner gruppe programmiert. sind 5 leute in einer gruppe. mir wurde der XML-parser zugewiesen...
Ich habe mir so etwas schon gedacht... mal ehrlich: Man kann so etwas nicht einfach separieren! Du musst Dich doch mit den anderen Entwicklern zu Beginn zusammen setzen und ihr müsst Datenmodelle definieren. Im Grunde müssen diese auch *fertig* sein, bevor Du Dich mit der Serialisierung befassen kannst.

Alles andere führt im besten Falle zu Murks, wenn Du später einen Wrapper schreiben musst, um Deinen Parsrer an das dann vorhandene Datenmodell anzubinden, und im schlimmsten Falle zu gar nichts, wenn Du essenzielle Dinge nicht berücksichtigst und Dein Parser so viele Lücken enthält, dass er schlicht unbrauchbar ist.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten