Ich muss erkennen, ob eine Funktion eine leere Definition ist oder nicht. Es kann wie sein:Erkennen von leeren Funktionsdefinitionen in Python
def foo():
pass
oder wie:
def foo(i, *arg, **kwargs):
pass
oder wie:
foo = lambda x: None
Was ist die eleganteste Art und Weise, sie zu erkennen, indem das Modul 'inspizieren'? Gibt es einen besseren Weg als dies:
def isEmptyFunction(func):
e = lambda: None
return func.__code__.co_code == e.__code__.co_code
Sie generate_tokens verwenden können, und prüfen, ob Token mit „def“ oder „Lambda“ beginnen. Danach suchen Sie sofort nach ":" und einem "Pass" oder "None". Nicht sauber, aber ich denke, das sollte funktionieren. – spicavigo
Noch ein anderer Weg wäre, ast-Modul zu verwenden und den Funktions-String zu analysieren. Ich denke, du kannst die Details ausarbeiten. – spicavigo
Die Art, wie Sie es tun, sieht gut aus. – BrenBarn