関数が空の定義であるかどうかを検出する必要があります。 '検査' モジュールを使用してそれらを検出するための最もエレガントな方法は何Pythonで空の関数定義を検出する
foo = lambda x: None
:
def foo():
pass
など:
def foo(i, *arg, **kwargs):
pass
などそれは次のようにすることができますか?これよりも良い方法がありますか:
def isEmptyFunction(func):
e = lambda: None
return func.__code__.co_code == e.__code__.co_code
あなたはgenerate_tokensを使用して、トークンが「DEF」または「ラムダ」で始まるかどうかを確認することができます。その後、直後に ":"と "パス"または "なし"を探します。きれいではありませんが、これはうまくいくはずです。 – spicavigo
さらに別の方法は、astモジュールを使用して関数文字列を解析することです。私はあなたが詳細を考え出すことができると思います。 – spicavigo
あなたのやり方は上手く見えます。 – BrenBarn