2009年10月10日土曜日

関数やメソッドの引数の情報を取得する

inspectモジュールのgetargspec関数を使う

# -*- coding: utf-8 -*-

import inspect

def print_func(func):
    args, varargs, varkws, defaults = inspect.getargspec(func)
    # 取得した値をinspect.formatargspec関数でフォーマット
    print func.__name__ + inspect.formatargspec(args, varargs, varkws, defaults)

print_func(print_func)
print_func(inspect.formatargspec)
print_func(inspect.getclasstree)

実行すると
print_func(func)
formatargspec(args, varargs=None, varkw=None, defaults=None, formatarg=<type 'str'>, formatvarargs=<function <lambda> at 0xb7c40f44>, formatvarkw=<function <lambda> at 0xb7c43144>, formatvalue=<function <lambda> at 0xb7c4317c>, join=<function joinseq at 0xb7c40f0c>)
getclasstree(classes, unique=0)

詳細はドキュメントで

0 件のコメント:

コメントを投稿