Python-如何检查API';s模块

Python-如何检查API';s模块,python,api,module,Python,Api,Module,我有API Arcgis 我导入arcgis.gis 我想了解本模块在工具方面的内容 例如,我知道它有 .tags,但我如何知道它是否有.feature_层(因为显然不存在)。因此,简单地说,在API中,我如何知道我可以使用什么呢?理想情况下,您应该阅读文档,但是如果它们不可用,在查看源代码之前,您可以执行以下操作 >>> import mymodule >>> help(mymodule) >>> dir(mymodule) >>

我有API Arcgis 我导入arcgis.gis

我想了解本模块在工具方面的内容 例如,我知道它有
.tags,但我如何知道它是否有.feature_层(因为显然不存在)。因此,简单地说,在API中,我如何知道我可以使用什么呢?

理想情况下,您应该阅读文档,但是如果它们不可用,在查看源代码之前,您可以执行以下操作

>>> import mymodule
>>> help(mymodule)
>>> dir(mymodule)
>>> mymodule.__dict__
可以使用…inspect类进行更多检查。。。(看看这个脚本,我没有写,但也不记得从哪里得到的)

import inspect
import mymodule

def get_function_markdown(function):
    return inspect.getdoc(function)


def parse_class(_class):
    for name, data in inspect.getmembers(_class):
        print '%s :' % name, repr(data)


def parse_module(module):
    """See what you can get in  module."""
    for name, data in inspect.getmembers(module):
        if name == '__builtins__':
            continue
        if inspect.ismodule(data):
            print "ismodule"
            print '%s :' % name, repr(data)
        elif inspect.isclass(data):
            print "isclass"
            print '%s :' % name, repr(data)
            parse_class(data)
        elif inspect.ismethod(data):
            print "ismethod"
            print '%s :' % name, repr(data)
        elif inspect.isfunction(data):
            print "isfunction"
            print get_function_markdown(data)
            print '%s :' % name, repr(data)
        elif inspect.isgeneratorfunction(data):
            print "isgeneratorfunction"
            print '%s :' % name, repr(data)
        elif inspect.isgenerator(data):
            print "isgenerator"
            print '%s :' % name, repr(data)
        elif inspect.istraceback(data):
            print "istraceback"
            print '%s :' % name, repr(data)
        elif inspect.isframe(data):
            print "isframe"
            print '%s :' % name, repr(data)
        elif inspect.iscode(data):
            print "iscode"
            print '%s :' % name, repr(data)
        elif inspect.isbuiltin(data):
            print "isbuiltin"
            print '%s :' % name, repr(data)
        elif inspect.isroutine(data):
            print "isroutine"
            print '%s :' % name, repr(data)
        elif inspect.isabstract(data):
            print "isabstract"
            print '%s :' % name, repr(data)
        elif inspect.ismethoddescriptor(data):
            print "ismethoddescriptor"
            print '%s :' % name, repr(data)
        elif inspect.isdatadescriptor(data):
            print "isdatadescriptor"
            print '%s :' % name, repr(data)
        elif inspect.isgetsetdescriptor(data):
            print "isgetsetdescriptor"
            print '%s :' % name, repr(data)
        elif inspect.ismemberdescriptor(data):
            print "ismemberdescriptor"
            print '%s :' % name, repr(data)
        else:
            print "Unknown"
            print '%s :' % name, repr(data)


def main():
    """Testing."""
    parse_module(mymodule)

if __name__ == '__main__':
    main()