[Python-de] Bei der Instantiierung einer Funktion Code ausführen

Albert Hermeling Albert.Hermeling at t-online.de
So Dez 9 16:04:46 CET 2012


Am 09.12.2012 12:45, schrieb Diez B. Roggisch:

Hallo Diez,
>>>
>> Also ich sehe POC als normales Python an. Man benützt diese 
>> POC-Hierarchie in weiten Teilen, so wie man eine ganz normale 
>> Objekt-Hierarchie benützen würde.
>
> Und warum benutzt man dann nicht einfach eine *echte* Python 
> Objekthierarchie?
Tust du doch. Wie ich Stefan schon geschrieben habe ist der Satz 
"verunglückt" Entschuldige bitte.
>
>>> Fazit: Ich würde eher versuchen, ein Design zu entwickeln,
>>> dass sich gut in die normale Entwicklung mit Python einfügt.
>> Meiner Meinung nach habe ich das gemacht. Aber na ja Geschmäcker sind 
>> verschieden; trotzdem hoffe ich, das ihr mein POC nicht in völlig in 
>> der Luft zerreißen werdet.:-)
>
> Ich wuerde es schon gerne, aber ich fürchte, das ist Code, der dir am 
> Herzen liegt…
Ja das tut er...
>
> Doch ich versuch's trotzdem mal, dir das auszureden.
... hätte mich gewundert wenn nicht. :-D
>
> Im Java-Umfeld gibt es - ob der geringen Flexibilitaet der Sprache - 
> oft XML als Konfigurations-Sprache, die an Maechtiggkeit den Umfang 
> einer "echten" Programmiersprache annimmt.
>
> Mich erinnert das ganze an alte ANT-Skripte, die ich schreiben musste. 
> Im Grunde XML, aber dank "BeanShell" konnte man Jython einbetten. Und 
> weil es ein paar Funktionalitaeten gab, die ANT nicht unterstuetzt 
> hat, musste man das machen. Und es war ..schlimm.
>
> Und POC ist das IMHO auch. Denn es faengt schonmal damit an, dass XML 
> zu schreiben Menschen nicht zugemutet werden sollte. XML ist ein 
> Serialisierungsformat, dass gut zwischen zwei Maschinen funktioniert. 
> Aber es von Hand zu erstellen ist anstrengend. Wer zB mal Apache mit 
> NGINX Konfigurationsdateien verglichen hat, weiss wovon ich rede.
Also ANT kenne ich nicht dazu kann ich nichts Schreiben. Aber du 
behauptest das es schwer ist eine POC Datei zu schreiben, dann probiere 
ich das jetzt mal aus:

Quelle der Nachfolgenden Daten ist die Wikipedia: 
http://de.wikipedia.org/wiki/Die_Simpsons die Textauszüge sind als 
Zitate zu verstehen

---Dateianfang---

DOCTYPE = "VERSION : 1.3.0, CHARSET : UTF8, ESC : !/" # Sprachversion 
und Kodierung;

[Simpsons]
[Familie]
[Eltern]
vater = ("Homer Jay Simpson " 01.01.1970 Sicherheitsinspektor);
vater_beschreibung = """
Homer Jay Simpson ist das Familienoberhaupt der Simpsons,
Ehemann von Marge und Vater von Bart, Lisa und Maggie. Sein
Alter schwankt je nach Episode zwischen 36 und 42 Jahren....
""";
mutter = ("Marjorie !/„Marge!/“ Simpson", 1.1.1978 "Hausfrau und Mutter);
mutter_beschreibung = """
Marjorie „Marge“ Simpson, geborene Bouvier, die 34-jährige
Ehefrau von Homer und Mutter von Bart, Lisa und Maggie,
ist die gute Seele im Hause Simpson. Sie lebt in aufopfernder
Zuwendung für ihre...
""";
[/Eltern]
[Kinder]
bart = ("Bartholomew !/„Bart!/“ Jo-Jo Simpson" 01.1.2002 Schüler);
bart_beschreibung = """
Bartholomew „Bart“ Jo-Jo Simpson, alias „El Barto“,
alias „Bartman“, ist der zehnjährige Sohn von Homer
und Marge und zwei Jahre und 38 Tage älter als Lisa.
""";
lisa = ("Lisa Marie Simpson" 1.1.2004 Schüler);
lisa_beschreibung = """
Lisa Marie Simpson, acht Jahre alt, ist das zweite der
Simpson-Kinder und mit einem IQ von 159 hochbegabt.
""";
maggie = ("Margaret !/„Maggie!/“ Simpson" 01.01.2011);
maggie_beschreibung = """
Margaret „Maggie“ Simpson ist mit einem Jahr das
jüngste Mitglied der Familie
""";
[/Kinder]
[/Familie]
[Serie]
staffel1 = ("Die komplette 1. Staffel." " 27. September 2001" "13 
Folgen") # Gekürzt;
staffel2 = ("Die komplette 2. Staffel." " 6. Juni 2002" "22 Folgen") # 
Gekürzt;
[/Serie]
[/Simposons]

---Dateiende---

So das soll erst mal Reichen für das ganze habe ich 20 Minuten gebraucht 
und das obwohl ich Schwer-behindert bin und die Hände nicht immer machen 
was sie sollen. Das ist auch der Grund warum in listen, tuple, sets 
keine Kommas zwischen den Elementen stehen. Als ich wieder anfing zu 
Programmieren viel es mir noch schwerer als heute.
>
> Dann darf ich zwar Python schreiben, aber nicht so richtig, weil du 
> bestimmte Dinge 'doof' findest wie globals oder lokale Importe. Ich 
> kann es nicht im Emacs bearbeiten mit all den Vorteilen von entweder 
> einem XML-Modus oder einem Python-Modus. Oder zB mit Altova XMLSPY. 
> Ich kann nicht unit-testen, ich kann nicht wiederverwenden, ich kann 
> keine komplexeren Strukturen bauen.
Ist schon seltsam ich lese diese Liste schon lange und immer wenn jemand 
global gebrauchen will um globale Variablen anzulegen wird im davon 
abgeraten. Jetzt wo ich konsequenter Weise die Verwendung untersagen 
will wird das als Beschränkung empfunden ;-)

Ach ja uni-testen kannst Du es :-) die ganze Bibliothek wird per 
unittest getestet und zwar sehr ausführlich.
>
> Fuer bestimmte Python-Strukturen gibt es aequivalente Konstrukte - 
> eine unnoetige Doppelung. Es gibt sogar noch eine dritte Syntax mit 
> Semikola als Statement-Trenner, Python-Code ist irgendwie komisch in 
> Strings einzubetten usw.
>
> Du verraetst uns ja nicht, *wozu* du das geschrieben hast.
In erster Linie habe ich es für mich geschrieben. Nach meiner schweren 
Krankheit brauchte ich etwas was mich aufrichtet, etwas was mich Fesselt 
und Fasziniert. Wie ich dazu gekommen bin genau das zu scheiben kann ich 
heute nicht mehr sagen.

Viele Grüße

Albert


Mehr Informationen über die Mailingliste python-de