PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Python]: Werte an foo, welches bar inkludiert zurückgeben



d@tenmaulwurf
14-08-2006, 13:10
Hallo!

Ich habe vor mir ein kleines Framework zu bauen, welches bei Bedarf eine Reihe von Pythonskripten inkludiert und in allen Scripten vorhandene Methoden aufruft.

Beispielscript foo.py:

foo ():
pythoncode

framework.py:
import foo
foo ()

Jetzt zu meinem Problem:
foo.py soll selber keine "print"'s machen, sondern wuasi nur Werte zurückgeben, was ja mit return eigentlich kein Problem sein sollte.
Jetzt sind die Scripten aber teilweise etwas komplexer und müssen dem User gewisse Informationen mitteilen.
Wenn ich diese Informationen aber puffer und am Ende zurückgebe erfolgen die Ausgaben alle auf einmal am Ende, nicht zu dem Zeitpunkt, an dem sie angebracht wären.
Ich möchte auch ungerne in jedes dieser Scripten eine Funktion á la msg() schreiben (wobei mir auch das Recht wäre, wenn ich wüsste wie ich mit dieser Werte so an das Framework weitergeben kann, sodass diese sofort ausgegeben werden).

Wenn dieser Post wieder einmal zu kryptisch / verquer gedacht ist bitte posten.
Lieber sagen der Post ist unverständlich, als ihn kopfschüttelnd zu übergehen :)

Vielen Dank,

d@tenmaulwurf

\\EDIT:
Habe grad einen weiteren Fehler in meiner Idee gefunden. Ich kann ja schlecht der import Anweisung eine Variable mitgeben, sodass sozusagen - je nachdem welchen Wert eine Variable enthält - eine gleichnamige Datei importiert wird.

Somit freue ich mich sehr über mögliche Vorschläge für andere Lösungen.

Joghurt
14-08-2006, 20:55
foo.py:
from meinProgramm import feedback

def foo():
alter = feedback("Voll krass! Wie alt biste denn?")

d@tenmaulwurf
17-08-2006, 13:20
Ja man, krass, danke alter, was auch immer das soll...

Zudem entspricht es nicht einer Lösung meines Problems.

Aber zu meinem zweiten hinzugefügten Problem:

Kann ich Dateien zur Laufzeit dynamisch inkludieren?
Also ich kenn das nur aus PHP *duck*, da ging ein einfaches include($variable).

Fall dies nicht möglich ist, würde mir auch schon reichen _alle_ Module aus einem bestimmten Pfad zu importieren, aber auch Wildcards sind ja scheinbar nich möglich - oder doch?

Romanday
17-08-2006, 18:42
Ja man, krass, danke alter, was auch immer das soll...

Fall dies nicht möglich ist, würde mir auch schon reichen _alle_ Module aus einem bestimmten Pfad zu importieren, aber auch Wildcards sind ja scheinbar nich möglich - oder doch?

Hallo Ercan,

im Hauptprogramm

import Ercan

schreiben. Im Ordner Ercan eine __init__.py mit folgendem Inhalt anlegen.

# Ercan/__init__.py
import Stefffan, Allter, Was_Geht, UltraProll

d@tenmaulwurf
17-08-2006, 22:54
Hallo Ercan,

im Hauptprogramm

import Ercan

schreiben. Im Ordner Ercan eine __init__.py mit folgendem Inhalt anlegen.

# Ercan/__init__.py
import Stefffan, Allter, Was_Geht, UltraProll

Sorry, verstehe ich nicht - so wurde hier jetzt was "dynamisiert"?
Ich kann doch immernoch nicht dynamisch importieren - oder doch?

Joghurt
18-08-2006, 16:32
Ja man, krass, danke alter, was auch immer das soll...
Was ich damit ausdrücken wollte ist, dass dein Programm doch einfach eine .py-"Bibliothek" zur Verfügung stellen kann, mit einer feedback funktion, die, wenn sie Aufgerufen wird, den Benutzer fragt und das Ergebnis zurückgibt. Die einzelnen Skripten können dann diese Funktion nutzen, um Ausgaben zu machen und nach Eingaben zu fragen.