PyMOTW で pyclbr モジュールが紹介されていました。クラスブラウザを実装するのに便利なモジュールです。
たとえばこんなコードがあったとしましょう。
# foo.py
class Foo:
def hello(self):
print("hello")
def bye(self, person):
print("Bye,", person)
class Bar(Foo):
def hello(self):
pass
def go(self):
print()
で、pyclbr はこんな風に使います。
# browse.py
import pyclbr
for name, classinfo in pyclbr.readmodule("foo").items():
print(name)
for method in classinfo.methods.items():
print(method)
print()
実行結果はこんな感じ。
Foo
('bye', 4)
('hello', 2)
Bar
('go', 9)
('hello', 7)
Bar.bye() は表示されません。スーパークラスのメソッドは、明示的に取らないといけないようです。
テストシーケンス管理ツール TestStand 4.2 から Python に対応しています。実行時に関数やメソッドを指定して呼び出せるはずです。おそらく、このモジュールを使っているんだろうなあと思います。未確認ですが。