首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python *a残杀*命令

Python *a残杀*命令
EN

Stack Overflow用户
提问于 2013-06-02 19:51:19
回答 3查看 1.1K关注 0票数 2

我正在寻找所有的功能,其中有一个参数称为可调。

其中一个函数是matplotlib.pyplot.figure ().add_axes。help(matplotlib.pyplot.figure ().add_axes)描述了这个参数,该参数可以出现在kwargs字典中。

我试过pydoc.apropos

代码语言:javascript
复制
from pydoc import apropos

In [8]: apropos ('adjustable')
No handlers could be found for logger "OpenGL.Tk"

In [9]: 

这就是它所返回的(键)。

找到我正在寻找的东西的一种蛮力方法是grep -- python的源代码-- /usr/share/。但是,我需要从当前的python环境中执行此操作(只有在计算程序中加载的内容)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-03 15:46:25

我刚刚注意到您使用的是IPython,如果是这样的话,有一个名为抓取的扩展,它实现了自己版本的抓取,在这里可能很有用。

文档甚至在其示例中使用matplotlib

票数 3
EN

Stack Overflow用户

发布于 2013-06-02 20:15:36

apropos只搜索所有模块的一行摘要,而不是每个函数的每个文档字符串,因为这是不可行的(已经像apropos那样导入了每个模块,搜索它的docstring是相当大的开销)。

即使是这样,对于add_axes,它也找不到任何东西,因为你的搜索词不是单行描述的一部分。

如果你需要这样的功能,你需要自己来实现。

票数 1
EN

Stack Overflow用户

发布于 2013-06-03 06:35:53

下面是一个快速编写的函数,它遍历指定路径中的所有当前包,使用ast查找匹配参数,并为每个匹配返回(filename, funcname, line_no)

代码语言:javascript
复制
import ast
import pkgutil
import os.path

class FindParameter(ast.NodeVisitor):
    def __init__(self, parameter):
        self.parameter = parameter
        self.found = []

    def visit_FunctionDef(self, node):
        for arg in node.args.args:
            if getattr(arg, 'id', None) == self.parameter:
                self.found.append(node)

def apropos(parameter, path=None):
    paramFinder = FindParameter(parameter)
    for importer, modname, is_package in pkgutil.iter_modules(path=path):
        try:
            loader = importer.find_module(modname)
            loader.get_code()
            if loader.source:
                tree = ast.parse(loader.source, filename=loader.filename)
                paramFinder.visit(tree)
        except SyntaxError:
            pass # avoid any broken code in the current path
    return [ (loader.filename, found.name, found.lineno) for found in paramFinder.found ]

all_selfs = apropos('self')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16886679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档