10

次のようなスクリプトがあるとします。

import sys

def square(x):
    return x*x

def cube(x):
    return x**3

['square', 'cube']インポートされたものではなく、プログラムでローカルに定義されたすべての関数のリストを返すにはどうすればよいですか。

それらは私が試したときに含まれていdir()ますが、すべての変数と他のインポートされたモジュールも含まれています。dirローカルで実行されているファイルを参照するために何を入力すればよいかわかりません。

4

4 に答える 4

3
import sys
import inspect
from os.path import join

def square(x):
    return x*x

def cube(x):
    return x**3

print inspect.getmembers(sys.modules[__name__], \
      predicate = lambda f: inspect.isfunction(f) and f.__module__ == __name__)

版画:

[('cube', <function cube at 0x027BAC70>), ('square', <function square at 0x0272BAB0>)]

于 2013-08-26T19:36:40.407 に答える