我的目标是解析一个类并返回一个数据结构(对象,字典等),它描述了类中包含的方法和相关参数。类型和回报的奖励积分......
要求:必须是Python
例如,以下类:
class Foo:
def bar(hello=None):
return hello
def baz(world=None):
return baz
将被解析为返回
result = {class:"Foo",
methods: [{name: "bar", params:["hello"]},
{name: "baz", params:["world"]}]}
所以这只是我正在思考的一个例子......我对数据结构非常灵活。
有关如何实现这一目标的任何想法/示例?
答案 0 :(得分:8)
您可能想要查看Python的inspect模块。它会让你大部分时间到达那里:
>>> class Foo:
... def bar(hello=None):
... return hello
... def baz(world=None):
... return baz
...
>>> import inspect
>>> members = inspect.getmembers(Foo)
>>> print members
[('__doc__', None), ('__module__', '__main__'), ('bar', <unbound method Foo.bar>
), ('baz', <unbound method Foo.baz>)]
>>> inspect.getargspec(members[2][1])
(['hello'], None, None, (None,))
>>> inspect.getargspec(members[3][1])
(['world'], None, None, (None,))
这不是您想要的语法,但在阅读文档时,该部分应该非常简单。