Python-Skripte parsen: end of function erkennen

07/04/2009 - 10:30 von Stefan | Report spam
Hallo,
ich versuche mich gerade an einem kleinen Script, dass alle Stellen
anzeigen soll, in denen eine Python __init__-Funktion ein return-
Statement enhaellt.
Mein Problem ist hierbei, dass ich es nicht schaffe, das Ende einer
Python-Funktion zuverlaessig zu erkennen.

Mein aktueller Code ist hier: http://pastebin.com/f458cf8ce

// fuer alle, die kein Python koennen (_ entspricht einem Leerzeichen,
anstelle 4 Leerzeichen darf auch ein Tab stehen):
def function(param, **kw_args):
____print "hello perl"

____print "empty lines area allowed"

____def subfunction():
________print "subfunction"

def newfunction():
____pass

das Ende von "function" gilt es zu erkennen. Ich versuche es
hauptsaechlich ueber die Einrueckungstiefe zu erkennen, aber das
functioniert nicht so wie gewollt.
Hat jemand Tips?
Danke, Stefan
 

Lesen sie die antworten

#1 Frank Seitz
07/04/2009 - 10:49 | Warnen spam
Stefan wrote:

ich versuche mich gerade an einem kleinen Script, dass alle Stellen
anzeigen soll, in denen eine Python __init__-Funktion ein return-
Statement enhaellt.
Mein Problem ist hierbei, dass ich es nicht schaffe, das Ende einer
Python-Funktion zuverlaessig zu erkennen.

Mein aktueller Code ist hier: http://pastebin.com/f458cf8ce

// fuer alle, die kein Python koennen (_ entspricht einem Leerzeichen,
anstelle 4 Leerzeichen darf auch ein Tab stehen):
def function(param, **kw_args):
____print "hello perl"

____print "empty lines area allowed"

____def subfunction():
________print "subfunction"

def newfunction():
____pass

das Ende von "function" gilt es zu erkennen. Ich versuche es
hauptsaechlich ueber die Einrueckungstiefe zu erkennen, aber das
functioniert nicht so wie gewollt.
Hat jemand Tips?



In de.comp.lang.python findest du eventuell kompetentere Auskunft zu der Frage.

Wo ist in deinem Beispiel die __init__-Funktion?

Grüße
Frank Seitz
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Ähnliche fragen