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