BlackJack hat geschrieben:@[LC]: ``from modulname import *`` importiert das Modul und bindet die Objekte, die nach dem Importieren in dem Modul existieren, auch im importierenden Modul an die gleichen Namen. Deine Exemplare existieren zu dem Zeitpunkt halt noch nicht.
Ok, das ist eine interessante Aussage.
Aber sowohl Dein Wunsch, dass das so funktioniert, als auch die Verwendung von ``exec`` halte ich für ziemlich "unpythonisch". Das ``exec`` würde ich auf jeden Fall loswerden. Quelltext zur Laufzeit zusammen zu bauen ist unsauber.
Das ist aber gerade die Idee dahinter, weil ich zur Laufzeit des Skriptes erst die wesentlichen Dinge zusammensetzen kann. Genau genommen werden die obj_namen, anders als in dem Beispiel mittels TCP/IP abgefragt. Erst wenn ich die habe, kann ich die Objekte daraus erzeugen. Jedes Objekt für sich stellt dann augenscheinlich nichts anderes als ein Befehl dar, der bei Aufruf mit seinem Argument über das Netzwerk in eine andere Applikation getunnelt wird. Was ich von Python nutzen möchte ist, dass ein Nutzer sich mit diesen (dynamischen) Befehlen und mittels der einfach Python-Syntax für Schleifen und Kontrollstrukturen einfache Skripte schreiben kann, die einen Ausführungsfluss in der anderen Applikation widerspiegeln. Wie die Kommunikation zwischen Python und der anderen Applikation aussieht braucht er gar nicht zu wissen, denn das soll alles in der dobject_function.py umgesetzt sein. Ich könnte auch einen anderen Weg beschreiten und jeden Befehl als Funktion hardcodiert umsetzen. Inhaltlich wären alle Funktionen identischen, nur eben mit einen anderen Namen versehen.
Zusammen mit den komischen ``return 1`` am Ende der Funktionen habe ich den Eindruck Du möchtest nicht in Python programmieren, sondern versuchst die Semantik einer anderen Programmiersprache irgendwie in Python-Syntax quetschen zu wollen.
Ja dein Eindruck geht in die richtige Richtung. Ich möchte weniger in Python explizit programmieren, vielmehr möchte ich mit Python scripten.
Schöne Grüße
LC