Seite 1 von 1

funktionen übergeben!

Verfasst: Freitag 13. Februar 2004, 12:29
von Gast
hallo zusammen!

ich habe ja ein modul webtool erstellt. diverse cgi skripten brauchen diesselbe funktion. fast jedes liest eine datei aus

also kann man im modul eine funktion wie folgt definieren:

Code: Alles auswählen

def auslesen(dialog,option,funktion):
	f=file(dialog,option)
	textzeilen=funktion
	f.close()
   return textzeilen

mein problem: ich würde gern auch die funktion übergeben wie angedeutet: im einen skript brauche ich nämlich eine liste also

Code: Alles auswählen

textzeilen=f.readlines()
im anderen ein string objekt, also

Code: Alles auswählen

textzeilen=f.readline()
der aufruf müsste lauten in etwa

Code: Alles auswählen

auslesen('pfad','r',f.readlines())
das geht aber natürlich nicht.

wer kann mir hier weiterhelfen?

mfg

rolgal

Verfasst: Freitag 13. Februar 2004, 12:31
von Dookie
Hi rolgal,

Code: Alles auswählen

auslesen('pfad','r',f.readlines)

Gruß

Dookie

Verfasst: Freitag 13. Februar 2004, 12:41
von Dookie
uups, da du das file ja erst in der funktion öffnest

Code: Alles auswählen

def auslesen(dialog,option,funktion):
   f=file(dialog,option)
   textzeilen=funktion(f)
   f.close()
   return textzeilen

auslesen('pfad', 'r', file.readlines)

Gruß

Dookie

Verfasst: Freitag 13. Februar 2004, 13:33
von Gast
hi dookie!

langsam wird es wohl mal zeit, dass ich mich erkenntlich zeige, du bist ja eine unglaubliche hilfe.
da ich in innsbruck wohne und du in salzburg (laut profil) und ich auch noch immer wieder in salzburg bin, denke ich ist es angebracht dich mal zum essen oder sonstwas einzuladen.

warum das genau funktioniert ist mir noch net so klar, also wenn es :oops: dir nichts ausmacht mir das kurz zu erläutern :roll:

mfg

rolgal

Verfasst: Freitag 13. Februar 2004, 15:49
von Dookie
Hi rolgal,

das mit dem Essen können wir mal machen am besten meldest Dich mal per PM oder Mail :D

readlines ist eine Methode von file-Objekten. Da Methoden in Klassen definiert werden, sind sie auch über die Klasse erreichbar, dann muss aber eine Instanz der Klasse als erster Parameter mitübergeben werden. Etwas tricky aber es funktioniert.


Gruß

Dookie

Verfasst: Freitag 13. Februar 2004, 15:51
von Gast
eigentlich sonnenklar!

wohl nur noch nicht so geübt!

:D